/** * Defaults **/ *, *:before, *:after { box-sizing: border-box; } strong { font-weight: bold; } em { font-style: italic; } a { color: #888; } a:hover { color: #000; } /** * Variables **/ :root { --primary-color-h: 192.8; --primary-color-s: 63%; --primary-color-l: 49.8%; --primary-color-hsl: var(--primary-color-h), var(--primary-color-s), var(--primary-color-l); --primary-color: hsl(var(--primary-color-hsl)); --primary-color-dark-2: hsl( var(--primary-color-h), var(--primary-color-s), calc(var(--primary-color-l) * 0.9) ); --primary-color-dark-4: hsl( var(--primary-color-h), var(--primary-color-s), calc(var(--primary-color-l) * 0.9) ); --primary-color-dark-8: hsl( var(--primary-color-h), var(--primary-color-s), calc(var(--primary-color-l) * 0.9) ); --font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; } /** * Some generic components **/ .btn { font-family: var(--font-family); display: inline-block; padding: 0.25em 0.5em; border-radius: 2px; border: none; background-image: linear-gradient( var(--primary-color), var(--primary-color-dark-4) ); color: #fff; font-size: 1em; cursor: pointer; } .btn:hover, .btn:focus { background-image: linear-gradient( var(--primary-color-dark-2), var(--primary-color-dark-8) ); } .btn:focus { box-shadow: 0 0 0 3px hsla( var(--primary-color-h), var(--primary-color-s), var(--primary-color-l), 0.5 ); } .btn.btn--large { font-size: 1.25em; padding: 0.5em 0.75em; } select, input { font-family: var(--font-family); font-size: 1em; } input[type="text"], textarea { font-family: var(--font-family); font-size: 1em; padding: 0.2em 0.25em; border-radius: 2px; border: 1px solid #ccc; border-top: 1px solid #bbb; } input[type="text"]:focus, textarea:focus { box-shadow: 0 0 0 2px hsla( var(--primary-color-h), var(--primary-color-s), var(--primary-color-l), 0.5 ); } textarea { line-height: 1.4em; } /** * Base layout **/ body { font-family: var(--font-family); background: #e9e9e9; color: #333; margin: 0; padding: 0; font-size: 14px; line-height: 1.5em; text-align: left; } .container { background: #fff; margin: 1rem; border-radius: 3px; overflow: hidden; box-shadow: 0 3px 3px rgba(0, 0, 0, 0.1); } /** * Header **/ header { background: #111; color: #999; padding: 1rem 1.5rem; display: flex; justify-content: space-between; align-items: center; } header h1 { font-size: 1.5em; } header a { color: var(--primary-color); text-decoration: none; } header a:hover, header a:focus { color: var(--primary-color); text-decoration: underline; } header a:first-child { font-weight: bold; } /** * Navigation **/ nav { background: #333; display: flex; } nav a { color: #ccc; padding: 1rem 1.5rem; text-decoration: none; } nav a:hover, nav a:focus { background: #222; color: #fff; } nav a.current { background: var(--primary-color); color: #fff; } nav .nav__badge { background-color: rgba(0, 0, 0, 0.3); padding: 0.25em 0.6em; border-radius: 1em; font-size: 0.75em; color: #fff; margin-left: 0.25em; } /** * Page title **/ h2 { padding: 1rem 1.5rem; font-size: 18px; background-color: #f9f9f9; color: var(--primary-color); border-bottom: 1px solid #eee; } h2 small { font-size: 0.75em; color: #999; } /** * Notice **/ .notice { background: #ffc; color: #666600; font-size: 1em; padding: 1rem 1.5rem; border-bottom: 1px solid #ffff66; } .notice a { color: #666600; } .notice a:hover, .notice a:focus { color: #333300; } /** * Search form **/ .search { padding: 1rem 1.5rem; background-color: #f9f9f9; border-bottom: 1px solid #eee; line-height: 2em; } /** * Empty state & blankslate **/ .empty-state { padding: 3rem 1.5rem; text-align: center; } .empty-state svg { max-height: 200px; margin: 2em 0; } .empty-state .empty-state__msg { font-size: 1.25em; color: #aaa; } .empty-state form { margin-top: 1em; } /** * Locales list (locales index) **/ ul.locales-list { display: grid; padding: 1.5rem 1.5rem; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); grid-column-gap: 1em; grid-row-gap: 1em; } ul.locales-list a { text-decoration: none; color: #2fadcf; padding: 1.5em 1em; height: 100%; display: block; text-align: center; border: 1px solid #eee; border-radius: 2px; } ul.locales-list a span { font-size: 1.15em; } ul.locales-list a em.missing_translations, ul.locales-list a em.updated_translations { font-style: normal; background: #ff3860; color: #fff; font-size: 9px; padding: 0.25em 0.6em; border-radius: 1em; line-height: 1em; vertical-align: top; } ul.locales-list a em.updated_translations { background: #ffe857; color: rgba(0, 0, 0, 0.7); } ul.locales-list a:hover, ul.locales-list a:focus { background-color: #f9f9f9; } ul.locales-list a:hover span, ul.locales-list a:focus span { text-decoration: underline; } ul.locales-list form { border: 1px dashed hsla( var(--primary-color-h), var(--primary-color-s), var(--primary-color-l), 0.5 ); background-color: hsla( var(--primary-color-h), var(--primary-color-s), var(--primary-color-l), 0.025 ); height: 100%; display: grid; justify-items: center; align-items: center; padding: 1.5em 1em; } /** * Translations form **/ div.translations table { width: 100%; text-align: left; } div.translations td, div.translations th { padding: 1rem 1.5rem; vertical-align: top; width: 50%; } div.translations td { color: #222; } div.translations th { font-weight: bold; text-transform: uppercase; color: #aaa; border-bottom: 1px solid #ddd; padding: 1.5rem 1.5rem 0.25rem 1.5rem; } div.translations th.actions, div.translations td.actions { width: 50px; text-align: center; padding: 12px 0.5rem; } div.translations tbody tr:nth-child(2n) td { background-color: #fbfbfb; } div.translations tbody tr.active td:first-child { box-shadow: 3px 0px 0px -1px var(--primary-color) inset; } div.translations textarea.locale { width: 100%; min-height: 42px; } div.translations .updated, div.translations .previous { color: #999; border-left: 1px solid #ccc; margin-bottom: 1.5em; padding: 0 0 0 0.75em; } div.translations .updated .key, div.translations .previous .key { margin: 0 0 0.5em 0; line-height: 13px; } div.translations .updated .key em, div.translations .previous .key em { color: #999; text-transform: uppercase; font-size: 9px; font-style: normal; margin-bottom: 0.5em; border: 1px solid #ccc; padding: 2px; border-radius: 2px; } div.translations .updated { color: #222; border-color: orange; } div.translations .updated .key em { color: orange; border-color: orange; } div.translations .translation-key { color: #aaa; font-size: 10px; display: block; } div.translations .original textarea { display: none; } div.translations .original .interpolation, div.translations .original .carriage_return, div.translations .original .boolean { color: var(--primary-color); font-family: Courier, monospace; font-weight: bold; cursor: help; } div.translations .original .carriage_return:before { content: "ΒΆ"; } div.translations .actions a { font-weight: bold; text-decoration: none; } div.translations .actions .warning { font-weight: bold; font-size: 1.35em; color: orange; padding: 2px 4px; display: none; cursor: help; } div.translations .highlight { background-color: yellow; } div.translations .table_submit { background: #f5f5f5; border-top: 1px solid #e0e0e0; padding: 1.5rem; display: flex; justify-content: space-between; align-items: center; } /** * Pagination **/ .pagination { color: #777; background: #f5f5f5; } .pagination a, .pagination span, .pagination em { font-style: normal; padding: 0.25em 0.75em; text-decoration: none; border: 1px solid #ddd; border-radius: 2px; display: inline-block; background-color: #fff; } .pagination a.disabled, .pagination span.disabled, .pagination em.disabled { opacity: 0.5; } .pagination a:hover, .pagination a:focus, .pagination em.current { background-color: var(--primary-color); border-color: var(--primary-color); color: #fff; }