:root { --color-bg: var(--background); --color-menu: var(--f_high); /*previously --b_med*/ --color-menubg: var(--b_low); --color-menuascent: var(--b_inv); --color-item: var(--f_high); --color-itembg: var(--b_low); --color-itemascent: var(--b_inv); --color-image: #fff; /*Text overlaying an image item*/ --color-imagedarken: #000; /*Overlay on image as text background */ --alpha-darken: 0.2; --alpha-idle: 0.4; --alpha-enabled: 0.8; --alpha-ascent: 1.0; --size-menu: 150px; --size-menu-item-sepv: 14px; /*vertical space between menu items*/ --size-menu-item-seph: 10px; /*horizontal space between menu item count and icon*/ --size-menu-itemgroup-sepv: 30px; /*vertical space between menu types (types to terms, terms to tags)*/ --size-menu-tag-sepv: 10px; /*space between tag items*/ --size-grid-gutter: 20px; --size-grid-column: 350px; --size-item-corner: 3px; --size-item-elem-padding: 1em; /*vertical space between grid item internal elements (tags, notes, quotes etc)*/ --size-item-elem-sep: 0.75em; /*horizontal space between item element icon and element text (tag icon and tags)*/ --size-font-title: 1em; --size-font-body: 0.8em; --size-font-menutypes: 1em; --size-font-menutags: 0.8em; --size-font-bodytypes: 1em; /*font size of type icon/count*/ /*TODO: refactor these; */ --color-overlay-bg-i: #000; /*idle*/ --color-overlay-bg-e: #111; /*enabled*/ --color-overlay-item-i: #222; /*idle*/ --color-overlay-item-e: #333; /*enabled*/ --color-overlay-item-a: #666; /*ascent*/ } * { box-sizing: border-box; } html { font-family: 'Monaco', 'Andale Mono', 'Deja Vu Sans Mono', 'Consolas', monospace; background: var(--background); padding: 0em; margin: 0; overflow-y: scroll; } body { padding: 0em; margin: 0; } /* MENU */ .menu { background: var(--color-menubg); padding-top: var(--size-grid-gutter); width: var(--size-menu); position: fixed; height: 100%; z-index: 100; left: 0px; top: 0px; overflow-y: scroll; opacity: var(--alpha-idle); } .menu:hover { opacity: var(--alpha-enabled); } .menu::-webkit-scrollbar { display: none; } .menu-itemgroup { padding-bottom: var(--size-menu-itemgroup-sepv); width: 100%; float: left; } .menu-item { color: var(--color-menu); opacity: var(--alpha-idle); padding-bottom: calc(var(--size-menu-item-sepv) / 2); padding-top: calc(var(--size-menu-item-sepv) / 2); font-size: var(--size-font-menutypes); margin: 0px auto; width: 100%; float: left; text-align: center; } .menu-item:hover { color: var(--color-menuascent); opacity: var(--alpha-ascent); } .menu-itemcount { padding-right: calc(var(--size-menu-item-seph) / 2); display: inline-block; text-align: right; float: left; width: 50%; } .menu-itemicon { margin-left: calc(var(--size-menu-item-seph) / 2); margin-top: calc(var(--size-font-bodytypes) / 10); width: calc(var(--size-font-bodytypes) * 1.25); display: inline-block; text-align: center; float: left; } .menu-tagcontainer { margin: 0 auto; display: table; } .menu-tagicon { opacity: var(--alpha-idle); padding-bottom: calc(var(--size-menu-item-sepv) / 2); padding-top: calc(var(--size-menu-item-sepv) / 2); font-size: var(--size-font-menutags); color: var(--color-menu); display: table-row; text-align: center; width: 100%; float: left; } .menu-tag { opacity: var(--alpha-idle); color: var(--color-menu); padding-bottom: calc(var(--size-menu-tag-sepv) / 2); padding-top: calc(var(--size-menu-tag-sepv) / 2); font-size: var(--size-font-body); width: 100%; float: left; clear: left; } .menu-tagcount { padding-right: var(--size-menu-tag-sepv); text-align: right; float: left; } .menu-taglabel { text-align: left; float: left; } .menu-tag:hover { opacity: var(--alpha-ascent); } .menu-tag:hover .menu-taglabel { color: var(--color-menubg); background-color: var(--color-itemascent); } .menu-tag:hover .menu-tagcount { color: var(--color-itemascent); } .container { background: var(--background); margin-left: calc(var(--size-menu) + var(--size-grid-gutter)); margin-right: var(--size-grid-gutter); } .grid { margin: var(--size-grid-gutter) auto; -webkit-transition: opacity 1000ms linear; transition: opacity 1000ms linear; } .grid:after { /* clearfix (reset) */ display: block; content: ''; clear: both; } .grid-item, .grid-itemwide { border-radius: var(--size-item-corner); background: var(--color-itembg); margin-bottom: var(--size-grid-gutter); width: var(--size-grid-column); text-decoration: none; float: left; padding-bottom: var(--size-grid-gutter); position: relative; } .grid-item:hover, .grid-itemwide:hover { opacity: var(--alpha-ascent); } @media screen and (min-width: 886px) { .grid-itemwide { width: calc(var(--size-grid-column) * 2 + var(--size-grid-gutter)); } } .grid-item-upper-content { padding: var(--size-grid-gutter) var(--size-grid-gutter) 0 var(--size-grid-gutter); display: inline-block; z-index: 100; width: 100%; } .grid-item-image .grid-item-upper-content { position: absolute; top: 0; left: 0; height: 100%; width: 100%; } .grid-item-lower-content { padding: 0 var(--size-grid-gutter) 0 var(--size-grid-gutter); z-index: 100; } .grid-item-image .grid-item-lower-content { position: absolute; bottom: 0; left: 0; width: 100%; padding-bottom: var(--size-grid-gutter); } .grid-item-lower-content:empty { display: none; } .grid-item-image { padding-bottom: 0; overflow: hidden; background: transparent; } .grid-item img { border-radius: var(--size-item-corner); vertical-align: middle; /* vertical-align css hack removes bottom padding */ object-fit: cover; margin-bottom: 0px; width: 100%; max-height: 1000px; z-index: 0; } .grid-item:hover { /*box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, .1);*/ /*mix-blend-mode: multiply;*/ background: var(--color-itembg); opacity: 1; } .image-overlay { width: 100%; height: 100%; position: absolute; z-index: 10; background-color: var(--color-imagedarken); opacity: 0; } .grid-item-image:hover .image-overlay { opacity: var(--alpha-darken); } /* LINK */ .grid-item .link { width: calc(100% - var(--size-font-bodytypes)*2); float: left; clear: both; } .grid-item .link { text-decoration: none; display: inline-block; } .grid-item-image .link { display: none; } .grid-item-image:hover .link { display: initial; text-shadow: 0 0 3em #000; } .grid-item .title { opacity: var(--alpha-enabled); color: var(--color-item); font-size: var(--size-font-title); text-decoration: none; float: left; clear: both; } .grid-item:hover .title { opacity: var(--alpha-ascent); } .grid-item-image .title { display: none; } .grid-item-image:hover .title { display: initial; text-shadow: 0 0 3em #000; color: white; } .grid-item .link .link-line { margin-top: var(--size-item-elem-padding); float: left; clear: both; } .grid-item .link i { float: left; } .grid-item .link .link-title { color: var(--color-item); font-size: var(--size-font-body); float: left; } .grid-item:hover .link .link-title { color: var(--color-item); } .grid-item .link:hover .link-title { background-color: var(--color-itemascent); color: var(--color-itembg); } /* TYPE */ .grid-item .type { opacity: var(--alpha-idle); width: calc(var(--size-font-bodytypes)*2 + var(--size-grid-gutter)); color: var(--color-item); padding-bottom: var(--size-grid-gutter); font-size: var(--size-font-bodytypes); padding-top: var(--size-grid-gutter); vertical-align: top; text-align: center; position: absolute; right: 0px; top: 0px; } .grid-item-image .grid-item-upper-content a .type i { display: none; } .grid-item-image:hover .grid-item-upper-content a .type i { display: initial; color: var(--color-image); opacity: var(--alpha-enabled); } .grid-item-image:hover .grid-item-upper-content a:hover .type i { display: initial; color: var(--color-image); } .grid-item:hover .type { opacity: var(--alpha-enabled); color: var(--color-item); } .grid-item:hover .type:hover { opacity: var(--alpha-ascent); color: var(--color-itemascent); } .grid-item .link-title { opacity: var(--alpha-idle); } .grid-item .fas { opacity: var(--alpha-idle); } .grid-item:hover .link-title { opacity: var(--alpha-enabled); } .grid-item:hover a:hover .link-title { opacity: var(--alpha-ascent); } /*.grid-item:hover a:hover .fas { opacity: var(--alpha-ascent); }*/ .grid-item:hover .fas { opacity: var(--alpha-enabled); } /* NOTE, QUOTE, TERM, TAGS, AUTH, PROG */ .note, .quote, .term, .tags, .auth, .prog { opacity: var(--alpha-idle); padding-top: var(--size-item-elem-padding); color: var(--color-item); font-size: var(--size-font-body); float: left; clear: both; } .grid-item:hover .note, .grid-item:hover .quote, .grid-item:hover .term, .grid-item:hover .tags, .grid-item:hover .auth, .grid-item:hover .prog { opacity: var(--alpha-enabled); color: var(--color-item); } /*.grid-item:hover .tags:hover { opacity: var(--alpha-ascent); }*/ .grid-item-image .grid-item-lower-content .link, .grid-item-image .grid-item-lower-content .note, .grid-item-image .grid-item-lower-content .quote, .grid-item-image .grid-item-lower-content .term, .grid-item-image .grid-item-lower-content .tags, .grid-item-image .grid-item-lower-content .auth, .grid-item-image .grid-item-lower-content .prog { color: var(--color-image); } .grid-item-image .grid-item-lower-content { display: none; } .grid-item-image:hover .grid-item-lower-content { display: initial; } .tags a { color: var(--color-item); text-decoration:none; } .grid-item:hover .tags a { color: var(--color-item); } .grid-item:hover .tags a:hover { background-color: var(--color-itemascent); color: var(--color-itembg); } .grid-item-image:hover .tags a { color: #fff; } .grid-item-image:hover .tags a:hover { color: #fff; } /* SMALL ICONS */ .textIcon { margin-right: var(--size-item-elem-sep); color: var(--color-item); } .grid-item:hover .textIcon { color: var(--color-item); } /* PAGE */ .page-overlay { /* visual */ background-color: var(--color-overlay-bg-i); opacity: 0; /*-webkit-transition: opacity var(--animation-time) linear; transition: opacity var(--animation-time) linear;*/ width: 100%; height: 100%; /* position */ position: absolute; z-index: -100; left: 0; top: 0; /* content */ display: flex; align-items: center; justify-content: center; user-select: none; } .page-overlay .content-menu { width: 100px; float: left; text-align: center; height: 100%; padding-top: auto; padding-bottom: auto; margin-right: 50px; border-radius: var(--size-item-corner); } .page-overlay .content-menu:hover { background-color: var(--color-overlay-item-i); } .page-overlay .content-menu:hover a { color: var(--color-overlay-item-a); } .page-overlay .content-menu a { color: var(--color-overlay-item-e); text-decoration: none; } .page-overlay .content-menu .content-menu-option { height: 100px; width: 100px; display: flex; align-items: center; justify-content: center; } .page-overlay .content form { float: left; } .page-overlay .content .row .key { width: 100px; color: var(--color-overlay-item-a); visibility: hidden; float: left; padding: 9px 7px 10px 0; text-align: right; margin-right: 0px; } .page-overlay .content .row input { padding: 10px; width: 400px; margin-bottom: 10px; /*background-color: transparent;*/ background-color: var(--color-overlay-bg-e); color: #fff; border-width: 0px; /*border-width: 1px; border-style: solid; border-color: var(--color-menu);*/ border-radius: var(--size-item-corner); } .page-overlay .content .row input::placeholder { opacity: 1; color: var(--color-menu); } .page-overlay .content .row input:hover { /*background-color: var(--color-itemascent);*/ background-color: var(--color-overlay-item-i); } .page-overlay .content .row input:focus { /*background-color: var(--color-itemascent);*/ background-color: var(--color-overlay-item-e); } .page-overlay .content .display { float: left; height: 100%; width: 400px; padding: 10px; margin-left: 50px; color: var(--color-overlay-item-e); } .page-overlay .content-enter { margin-top: 50px; float: left; width: 100%; height: 100px; clear: both; text-align: center; padding-top: auto; padding-bottom: auto; vertical-align: center; border-radius: var(--size-item-corner); } .page-overlay .content-enter .content-menu-option { height: 100%; vertical-align: center; padding-top: auto; padding-bottom: auto; display: flex; align-items: center; justify-content: center; } .page-overlay .content-enter:hover { background-color: var(--color-overlay-item-i); } .page-overlay .content-enter:hover a { color: var(--color-overlay-item-a); } .page-overlay .content-enter a { color: var(--color-overlay-item-e); text-decoration: none; } /*noselect stops an unwanted selection visual on button click*/ .noselect { -webkit-touch-callout: none; /* iOS Safari */ -webkit-user-select: none; /* Safari */ -khtml-user-select: none; /* Konqueror HTML */ -moz-user-select: none; /* Firefox */ -ms-user-select: none; /* Internet Explorer/Edge */ user-select: none; /* Non-prefixed version, currently supported by Chrome and Opera */ }