prime8dev

prime8dev
git clone https://git.prime8.dev/prime8dev.git
Log | Files | Refs | README | LICENSE

style.css (5609B)


      1 * {
      2   margin: 0;
      3   padding: 0;
      4   box-sizing: border-box;
      5 }
      6 
      7 :root {
      8   --bg: #0d0d0d;
      9   --bg-alt: #161616;
     10   --fg: #c0c0c0;
     11   --fg-dim: #606060;
     12   --accent: #d7af5f;
     13   --accent-dim: #a68a3d;
     14   --cyan: #5fafaf;
     15   --blue: #5f87d7;
     16   --light-blue: #5fafff;
     17   --yellow: #d7af5f;
     18   --magenta: #af5faf;
     19   --red: #d75f5f;
     20   --border: #333;
     21   --selection: #3d3520;
     22 }
     23 
     24 @font-face {
     25   font-family: "JetBrains Mono";
     26   src: url("https://cdn.jsdelivr.net/npm/@fontsource/jetbrains-mono@5.0.18/files/jetbrains-mono-latin-400-normal.woff2")
     27     format("woff2");
     28   font-weight: 400;
     29 }
     30 
     31 body {
     32   background: var(--bg);
     33   color: var(--fg);
     34   font-family: "JetBrains Mono", "SF Mono", "Fira Code", monospace;
     35   font-size: 14px;
     36   line-height: 1.5;
     37   min-height: 100vh;
     38   overflow: hidden;
     39 }
     40 
     41 ::-webkit-scrollbar {
     42   width: 8px;
     43 }
     44 
     45 ::-webkit-scrollbar-track {
     46   background: var(--bg);
     47 }
     48 
     49 ::-webkit-scrollbar-thumb {
     50   background: var(--fg-dim);
     51   border-radius: 4px;
     52 }
     53 
     54 ::-webkit-scrollbar-thumb:hover {
     55   background: var(--fg);
     56 }
     57 
     58 a {
     59   color: var(--light-blue);
     60   text-decoration: none;
     61 }
     62 
     63 a:hover {
     64   opacity: 0.8;
     65 }
     66 
     67 #app {
     68   display: flex;
     69   flex-direction: column;
     70   height: 100vh;
     71   opacity: 0;
     72 }
     73 
     74 #app.ready {
     75   opacity: 1;
     76 }
     77 
     78 #content {
     79   flex: 1;
     80   overflow-y: auto;
     81   padding: 24px;
     82 }
     83 
     84 /* Header / Tabs */
     85 #tabs {
     86   display: flex;
     87   align-items: center;
     88   gap: 4px;
     89   background: var(--bg-alt);
     90   border-bottom: 1px solid var(--border);
     91   padding: 0 12px;
     92   height: 36px;
     93   position: sticky;
     94   top: 0;
     95   z-index: 100;
     96   user-select: none;
     97 }
     98 
     99 #tabs * {
    100   user-select: none;
    101 }
    102 
    103 .tab-nav {
    104   display: flex;
    105   align-items: center;
    106   gap: 4px;
    107 }
    108 
    109 .tab {
    110   padding: 6px 12px;
    111   color: var(--fg-dim);
    112   cursor: pointer;
    113   border-bottom: 2px solid transparent;
    114   transition: color 0.15s, border-color 0.15s;
    115 }
    116 
    117 .tab:hover {
    118   color: var(--fg);
    119 }
    120 
    121 .tab.active {
    122   color: var(--accent);
    123   border-bottom-color: var(--accent);
    124 }
    125 
    126 .tab-spacer {
    127   flex: 1;
    128 }
    129 
    130 .status {
    131   display: flex;
    132   align-items: center;
    133   gap: 8px;
    134   color: var(--fg-dim);
    135   font-size: 11px;
    136   margin-right: 8px;
    137 }
    138 
    139 .dpad {
    140   display: inline-flex;
    141   flex-direction: column;
    142   align-items: center;
    143   gap: 1px;
    144   font-size: 8px;
    145   line-height: 1;
    146 }
    147 
    148 .dpad-row {
    149   display: flex;
    150   gap: 1px;
    151 }
    152 
    153 .dpad-key {
    154   width: 12px;
    155   height: 10px;
    156   display: flex;
    157   align-items: center;
    158   justify-content: center;
    159   background: var(--border);
    160   border-radius: 2px;
    161   color: var(--fg);
    162 }
    163 
    164 /* Footer / Status Bar */
    165 #statusbar {
    166   display: flex;
    167   align-items: center;
    168   background: var(--bg-alt);
    169   border-top: 1px solid var(--border);
    170   padding: 0 12px;
    171   height: 24px;
    172   font-size: 12px;
    173   position: sticky;
    174   bottom: 0;
    175   z-index: 100;
    176 }
    177 
    178 #statusbar .time {
    179   color: var(--cyan);
    180 }
    181 
    182 #statusbar .spacer {
    183   flex: 1;
    184 }
    185 
    186 #statusbar .wakatime {
    187   color: var(--magenta);
    188   text-decoration: none;
    189 }
    190 
    191 #statusbar .wakatime:hover {
    192   opacity: 0.8;
    193 }
    194 
    195 /* Boot Animation */
    196 #boot-overlay {
    197   position: fixed;
    198   top: 0;
    199   left: 0;
    200   width: 100vw;
    201   height: 100vh;
    202   background: var(--bg);
    203   z-index: 9999;
    204   display: flex;
    205   align-items: center;
    206   justify-content: center;
    207   overflow: hidden;
    208 }
    209 
    210 #boot-overlay.fade-out {
    211   animation: bootFadeOut 0.3s ease-out forwards;
    212 }
    213 
    214 .boot-terminal {
    215   text-align: center;
    216 }
    217 
    218 .boot-text {
    219   display: flex;
    220   flex-direction: column;
    221   gap: 8px;
    222 }
    223 
    224 .boot-title {
    225   font-family: "JetBrains Mono", "SF Mono", monospace;
    226   font-size: 32px;
    227   font-weight: 600;
    228   color: var(--accent);
    229   letter-spacing: -0.5px;
    230 }
    231 
    232 .boot-subtitle {
    233   font-family: "JetBrains Mono", "SF Mono", monospace;
    234   font-size: 14px;
    235   color: var(--fg-dim);
    236   letter-spacing: 0.5px;
    237 }
    238 
    239 @keyframes bootFadeOut {
    240   0% { opacity: 1; }
    241   100% { opacity: 0; }
    242 }
    243 
    244 #app.boot-reveal {
    245   animation: revealContent 0.5s ease-out;
    246 }
    247 
    248 @keyframes revealContent {
    249   0% { opacity: 0; transform: translateY(15px); }
    250   100% { opacity: 1; transform: translateY(0); }
    251 }
    252 
    253 /* Help Overlay */
    254 #help-overlay {
    255   position: fixed;
    256   top: 0;
    257   left: 0;
    258   width: 100vw;
    259   height: 100vh;
    260   background: rgba(0, 0, 0, 0.8);
    261   z-index: 9998;
    262   display: flex;
    263   align-items: center;
    264   justify-content: center;
    265   opacity: 0;
    266   visibility: hidden;
    267   transition: opacity 0.2s, visibility 0.2s;
    268 }
    269 
    270 #help-overlay.visible {
    271   opacity: 1;
    272   visibility: visible;
    273 }
    274 
    275 .help-modal {
    276   background: var(--bg);
    277   border: 1px solid var(--border);
    278   padding: 20px 24px;
    279   min-width: 280px;
    280   max-width: 90vw;
    281 }
    282 
    283 .help-header {
    284   display: flex;
    285   justify-content: space-between;
    286   align-items: center;
    287   margin-bottom: 16px;
    288   padding-bottom: 12px;
    289   border-bottom: 1px solid var(--border);
    290 }
    291 
    292 .help-title {
    293   color: var(--accent);
    294   font-weight: 600;
    295 }
    296 
    297 .help-close {
    298   color: var(--fg-dim);
    299   font-size: 11px;
    300 }
    301 
    302 .help-content {
    303   display: flex;
    304   flex-direction: column;
    305   gap: 8px;
    306 }
    307 
    308 .help-row {
    309   display: flex;
    310   justify-content: space-between;
    311   align-items: center;
    312   gap: 24px;
    313 }
    314 
    315 .help-key {
    316   color: var(--cyan);
    317   font-family: "JetBrains Mono", monospace;
    318   font-size: 12px;
    319   min-width: 60px;
    320 }
    321 
    322 .help-desc {
    323   color: var(--fg);
    324   font-size: 13px;
    325 }
    326 
    327 /* Mobile */
    328 @media (max-width: 768px) {
    329   body {
    330     font-size: 13px;
    331     overflow-y: auto;
    332   }
    333 
    334   #app {
    335     min-height: 100vh;
    336     height: auto;
    337   }
    338 
    339   #tabs {
    340     flex-wrap: wrap;
    341     height: auto;
    342     min-height: 36px;
    343     padding: 8px 12px;
    344     gap: 8px;
    345   }
    346 
    347   .tab-nav {
    348     width: 100%;
    349     justify-content: space-between;
    350     gap: 0;
    351   }
    352 
    353   .tab {
    354     padding: 6px 8px;
    355     font-size: 12px;
    356     flex: 1;
    357     text-align: center;
    358   }
    359 
    360   .tab-spacer,
    361   .status {
    362     display: none;
    363   }
    364 
    365   .help-modal {
    366     padding: 16px 20px;
    367     min-width: 260px;
    368   }
    369 }