@import "variable"; * { border-width: 0; box-sizing: border-box; font-family: "Source Sans Pro", sans-serif; margin: 0; padding: 0; text-decoration: none; hyphens: auto; } a { cursor: pointer; } .spacer { flex: 1 0; } .noscroll { overflow: hidden; } #login-page { display: flex; flex-flow: column nowrap; align-items: center; height: 100vh; background-color: @bg; justify-content: center; >.error-message { width: 100%; margin: 16px 16px 0; max-width: 400px; background-color: @contentBg; border: 1px solid @border; padding: 16px; text-align: center; } #login-box { width: 100%; margin: 16px; max-width: 400px; background-color: @contentBg; display: flex; flex-flow: column nowrap; border: 1px solid @border; #logo-area { display: flex; align-items: center; flex-flow: column nowrap; padding: 16px; border-bottom: 1px solid @border; #logo { font-size: 3em; font-weight: 100; color: @main; span { margin-right: 8px; } } #tagline { font-weight: 100; color: @main; } } #input-area { padding: 8px; border-bottom: 1px solid @border; .input-field { display: flex; align-items: baseline; padding: 8px; p { color: @colorLight; font-size: 0.9em; margin-right: 16px; min-width: 65px; } input { color: @color; padding: 8px; border: 1px solid @border; flex: 1 0; font-size: 0.9em; } a { display: block; cursor: pointer; color: @colorLight; text-align: center; font-size: 0.9em; flex: 1 0; i { margin-right: 8px; color: @colorLight; } &:hover { color: @main; } } } } #button-area { display: flex; flex-flow: row nowrap; padding: 16px; a { color: @colorLink; text-transform: uppercase; background-color: @contentBg; flex: 1 0; text-align: center; &.button { cursor: pointer; &:hover { color: @accent; } } } } } } #index-page { display: flex; flex-flow: row nowrap; width: 100vw; height: 100vh; background-color: @bg; min-width: 0; min-height: 0; overflow: hidden; #sidebar { display: flex; flex-flow: column nowrap; flex-shrink: 0; background-color: @darkBg; min-width: 0; min-height: 0; overflow: hidden; #logo { width: 60px; line-height: 60px; text-align: center; font-size: 2em; color: @contentBg; background-color: @main; } >a { width: 60px; line-height: 60px; text-align: center; display: block; color: @colorLight; &:hover { background-color: @color; } &.active { background-color: @color; color: @main; } } } #body { flex: 1 0; display: flex; flex-flow: column nowrap; min-width: 0; min-height: 0; overflow: hidden; #header { background-color: @contentBg; border-bottom: 1px solid @border; display: flex; flex-flow: row nowrap; color: @color; align-items: center; min-width: 0; min-height: 0; overflow: hidden; flex-shrink: 0; input { flex: 1 0; line-height: 60px; padding: 0 16px; font-size: 1em; border-right: 1px solid @border; } a { width: 60px; line-height: 60px; text-align: center; color: @colorLink; &:hover, &:focus { color: @main; } } } #grid { overflow-y: auto; display: grid; grid-template-rows: auto; grid-template-columns: repeat(4, 1fr); grid-gap: 16px; padding: 16px 16px 0; .bookmark { display: flex; flex-flow: column nowrap; min-width: 0; border: 1px solid @border; background-color: @contentBg; height: 100%; &:hover, &:focus { .bookmark-menu>a { display: block; } } .bookmark-content { display: block; position: relative; flex: 1; cursor: default; &[href] { cursor: pointer; &:hover, &:focus { .title { color: @main; } } } img { width: 100%; max-height: 13em; object-fit: cover; margin-bottom: 8px; } .title { text-overflow: ellipsis; word-wrap: break-word; overflow: hidden; font-size: 1.2em; line-height: 1.3em; max-height: 5.2em; font-weight: 600; padding: 0 16px; color: @color; &:first-child { margin-top: 16px; } } .excerpt { color: @color; margin-top: 8px; padding: 0 16px; text-overflow: ellipsis; word-wrap: break-word; overflow: hidden; font-size: 0.9em; line-height: 1.5em; max-height: 10.5em; } } .bookmark-menu { padding: 8px 16px 16px; display: flex; flex-flow: row nowrap; min-width: 0; min-height: 0; align-items: center; a { color: @colorLink; flex-shrink: 0; opacity: 0.8; display: none; font-size: 0.9em; &:not(:last-child) { margin-right: 12px; } &:hover, &:focus { color: @main; opacity: 1; } } .url { flex: 1 0; opacity: 1; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 21px; } } } .pagination-box { grid-column-start: 1; grid-column-end: -1; display: flex; flex-flow: row nowrap; a { padding: 8px; color: @colorLink; &:hover, &:focus { color: @main; } } input { width: 40px; padding: 8px; text-align: center; font-size: 0.9em; border: 1px solid @border; margin: 0 8px; } p { font-size: 0.9em; color: @colorLink; line-height: 37px; font-weight: 600; &:last-of-type::before { content: "/"; margin-right: 8px; } } } #grid-padding { grid-column-start: 1; grid-column-end: -1; min-height: 1px; } } } } #cache-page { display: flex; flex-flow: column nowrap; align-items: center; height: auto; min-height: 100vh; a { color: @main; &:visited { color: @main; } &:hover { text-decoration: underline; } } >* { width: 100%; max-width: 864px; } #menu { display: flex; flex-flow: row nowrap; max-width: 864px; border-bottom: 1px solid @border; a { flex: 1 0; font-size: 0.9em; text-align: center; color: @colorLink; padding: 16px; i { margin-right: 4px; } cursor: pointer; &:not(:last-child) { border-right: 1px solid @border; } &:visited { color: @colorLink } &:hover { color: @main; text-decoration: none; } } } #metadata { padding: 32px; border-bottom: 1px solid @border; a { font-size: 0.9em; display: block; } h3 { font-size: 2em; margin: 8px 0; } p { font-size: 0.9em; color: @color; } } #content { padding: 16px 32px 32px; * { margin-top: 16px; line-height: 180%; overflow: auto; } pre, code { font-family: 'Ubuntu Mono', 'Courier New', Courier, monospace; } } &.dark-mode { background-color: #222; color: white; #menu a { color: white; &:visited { color: white; } &:hover { color: @main; text-decoration: none; } } #metadata p { color: white; } } }