:root { --background-color: #FFF; --background-darker: #EEE; --text-on-background-color: #111; --primary-color: #2F2FE1; --primary-color-dark: color-mix(in srgb, var(--primary-color), #000000 80%); --text-on-primary-color: #FFF; /* --color-red: #FE2060; */ /* --color-red: #EE1D59; */ --color-red: #E31B39; --dilute-color: black; --border-color: black; } @media (prefers-color-scheme: dark) { :root { --background-color: #222; --background-darker: #292929; --text-on-background-color: #CACACA; --primary-color: color-mix(in srgb, #2F2FE1, white 15%); --primary-color-dark: color-mix(in srgb, var(--primary-color), #000000 80%); --text-on-primary-color: #FFF; /* --color-red: #FE2060; */ --color-red: #EE1D59; --dilute-color: white; --border-color: color-mix(in srgb, var(--background-color), var(--dilute-color) 15%); } } html, dialog { background-color: var(--background-color); color: var(--text-on-background-color); } body { /* position: relative; */ font-family: 'Noto Sans', Helvetica, Arial, sans-serif; margin: 0 auto; max-width: 1200px; min-height: 100%; } * { box-sizing: border-box; } #app { padding: 12px; } a { color: var(--text-on-background-color); } header { background: var(--background-darker); min-height: 60px; font-weight: bold; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; padding: 4px 12px; border: 2px solid var(--border-color); border-radius: 12px; margin: 12px; box-shadow: 4px 2px 12px -5px black; display: flex; justify-content: space-between; a.logo { font-size: 2em; text-decoration: none; } nav { display: flex; border-radius: 12px; background: color-mix(in srgb, var(--background-darker), var(--dilute-color) 5%); a { text-decoration: none; margin: 4px 8px; padding: 8px 12px; border-radius: 12px; background: color-mix(in srgb, var(--background-darker), var(--dilute-color) 2%); &:hover { background: color-mix(in srgb, var(--background-darker), var(--dilute-color) 20%); } &.active { background: color-mix(in srgb, var(--background-darker), var(--dilute-color) 15%); } svg.icon { width: 1.3em; vertical-align: bottom; margin-right: 6px; } } } .logout_form { display: contents; } } .login_window { display: flex; flex-direction: column; justify-content: center; align-items: center; } button, .button { border: none; background: var(--primary-color); padding: 8px 16px; border-radius: 8px; color: var(--text-on-primary-color); font-size: 0.9em; &:hover { filter: brightness(90%); } &.delete, &.cancel { background: var(--color-red); } } input[type="text"], input[type="password"] { border: 1px solid black; border-radius: 8px; padding: 4px 8px; } .font_bold { font-weight: bold; } section { border: 1px solid var(--border-color); border-radius: 12px; box-shadow: 4px 2px 12px -8px black; border-collapse: collapse; padding: 8px 12px 12px; margin: 18px 8px; overflow: hidden; max-width: 100%; } table { border: 1px solid var(--border-color); border-radius: 12px; box-shadow: 4px 2px 12px -6px black; border-collapse: collapse; overflow-x: scroll; width: 100%; td, th { padding: 8px; border: 1px solid var(--border-color); width: max-content; } th { height: 40px; } tr:hover { background: color-mix(in srgb, var(--background-color), var(--dilute-color) 10%); } tr:first-child th { border-top: 0; } tr:last-child td { border-bottom: 0; } tr :first-child { border-left: 0; } tr :last-child { border-right: 0; } } ul.collection-list { padding-left: 0; li.collection-list-item { list-style: none; display: block; position: relative; background: color-mix(in srgb, var(--background-color), var(--dilute-color) 5%); border: 2px solid var(--border-color); border-radius: 12px; margin: 12px 0; box-shadow: 4px 2px 12px -6px black; overflow: hidden; a { position: absolute; inset: 2px; } .inner { display: grid; min-height: 80px; height: fit-content; grid-template-areas: ". . color-chip" "title comps color-chip" "description description color-chip" "subscription-url subscription-url color-chip" "metadata metadata color-chip" "actions actions color-chip" ". . color-chip"; grid-template-rows: 12px auto auto auto auto auto 12px; grid-template-columns: min-content auto 80px; row-gap: 4px; color: inherit; text-decoration: none; padding-left: 12px; position: relative; z-index: 1; pointer-events: none; a, button { pointer-events: all; cursor: pointer; } .title { font-weight: bold; grid-area: title; margin-right: 12px; white-space: nowrap; } span { margin: 8px initial; } .comps { grid-area: comps; span { margin: 0 2px; background: var(--primary-color); color: var(--text-on-primary-color); font-size: .8em; padding: 3px 8px; border-radius: 12px; } } .description { grid-area: description; white-space: nowrap; } .metadata { grid-area: metadata; white-space: nowrap; } .subscription-url { grid-area: subscription-url; white-space: nowrap; } .color-chip { background: var(--color); grid-area: color-chip; } .actions { grid-area: actions; width: fit-content; display: flex; gap: 12px; } } &:hover { background: color-mix(in srgb, var(--background-color), var(--dilute-color) 10%); } } } textarea { width: 100%; } dialog { border: 1px solid var(--border-color); border-radius: 16px; padding: 32px; } footer { display: flex; justify-content: center; margin-top: 32px; gap: 24px; bottom: 20px; } input[type="text"], input[type="password"], input[type="color"], select { background: color-mix(in srgb, var(--background-color), var(--dilute-color) 10%); border: 2px solid var(--border-color); padding: 6px 6px; color: var(--text-on-background-color); margin: 2px; border-radius: 8px; &:hover, &:focus { background: color-mix(in srgb, var(--background-color), var(--dilute-color) 20%); } } svg.icon { stroke-width: 2px; color: var(--text-on-background-color); stroke: var(--text-on-background-color); }