style.css 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. /* mpckit.monoexp.com — one stylesheet, no framework.
  2. Based on monoexp.com's; the amber accent is the app's. */
  3. :root {
  4. --bg: #fafaf9;
  5. --surface: #ffffff;
  6. --text: #1c1c1a;
  7. --muted: #5f5f5a;
  8. --border: #e4e4e0;
  9. --accent: #1c1c1a;
  10. --tag-bg: #f0f0ed;
  11. --focus: #2f6fdb;
  12. --amber: #b86e00;
  13. --amber-bg: #fdf1dc;
  14. --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  15. --mono: ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
  16. --radius: 10px;
  17. --max: 760px;
  18. }
  19. @media (prefers-color-scheme: dark) {
  20. :root {
  21. --bg: #121211;
  22. --surface: #1a1a19;
  23. --text: #ececea;
  24. --muted: #a3a39e;
  25. --border: #2c2c2a;
  26. --accent: #ececea;
  27. --tag-bg: #252524;
  28. --focus: #7aa7f5;
  29. --amber: #f5a524;
  30. --amber-bg: #2e2412;
  31. }
  32. }
  33. *,
  34. *::before,
  35. *::after { box-sizing: border-box; }
  36. html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
  37. body {
  38. margin: 0;
  39. background: var(--bg);
  40. color: var(--text);
  41. font: 17px/1.6 var(--sans);
  42. -webkit-font-smoothing: antialiased;
  43. }
  44. a { color: inherit; text-underline-offset: 3px; }
  45. a:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; border-radius: 4px; }
  46. .wrap {
  47. max-width: var(--max);
  48. margin: 0 auto;
  49. padding: 0 20px;
  50. }
  51. .sr-only {
  52. position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  53. overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
  54. }
  55. /* Header */
  56. .site-header { border-bottom: 1px solid var(--border); }
  57. .header-inner {
  58. display: flex;
  59. align-items: center;
  60. justify-content: space-between;
  61. height: 64px;
  62. }
  63. .wordmark {
  64. font: 600 18px/1 var(--mono);
  65. letter-spacing: -0.02em;
  66. text-decoration: none;
  67. }
  68. .wordmark span { color: var(--amber); }
  69. nav { display: flex; gap: 20px; }
  70. nav a {
  71. font-size: 15px;
  72. color: var(--muted);
  73. text-decoration: none;
  74. }
  75. nav a:hover { color: var(--text); }
  76. /* About */
  77. .about { padding: 56px 0 40px; }
  78. .about h1 { font-family: var(--mono); }
  79. .about h1 {
  80. margin: 0 0 12px;
  81. font-size: clamp(30px, 6vw, 42px);
  82. line-height: 1.15;
  83. letter-spacing: -0.03em;
  84. }
  85. .about p { margin: 0 0 14px; color: var(--muted); max-width: 62ch; }
  86. .about .lede { font-size: 20px; color: var(--text); }
  87. /* Hero extras */
  88. .eyebrow {
  89. display: flex;
  90. align-items: center;
  91. gap: 10px;
  92. margin: 0 0 14px !important;
  93. font: 13px/1 var(--mono);
  94. color: var(--muted);
  95. }
  96. .badge {
  97. font: 600 12px/1 var(--mono);
  98. text-transform: uppercase;
  99. letter-spacing: 0.06em;
  100. color: var(--amber);
  101. background: var(--amber-bg);
  102. padding: 5px 8px;
  103. border-radius: 6px;
  104. }
  105. .actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
  106. .button {
  107. display: inline-block;
  108. padding: 10px 18px;
  109. border-radius: 8px;
  110. font-size: 15px;
  111. font-weight: 600;
  112. text-decoration: none;
  113. background: var(--text);
  114. color: var(--bg);
  115. border: 1px solid var(--text);
  116. }
  117. .button:hover { opacity: 0.85; }
  118. .button.secondary { background: transparent; color: var(--text); border-color: var(--border); }
  119. .button.secondary:hover { opacity: 1; border-color: var(--accent); }
  120. /* Screenshot */
  121. .shot {
  122. margin: 0 0 48px;
  123. border: 1px solid var(--border);
  124. border-radius: var(--radius);
  125. overflow: hidden;
  126. background: var(--surface);
  127. }
  128. .shot img { display: block; width: 100%; height: auto; }
  129. .shot.placeholder {
  130. display: grid;
  131. place-items: center;
  132. aspect-ratio: 16 / 9;
  133. border-style: dashed;
  134. font: 13px/1 var(--mono);
  135. color: var(--muted);
  136. }
  137. /* Sections */
  138. main section:not(.about) { padding-bottom: 48px; scroll-margin-top: 16px; }
  139. .section-title {
  140. margin: 0 0 16px;
  141. font: 600 13px/1 var(--mono);
  142. text-transform: uppercase;
  143. letter-spacing: 0.08em;
  144. color: var(--muted);
  145. }
  146. .note { margin: 0 0 16px; color: var(--muted); font-size: 15.5px; }
  147. .note strong { color: var(--text); }
  148. .small { margin: 16px 0 0; color: var(--muted); font-size: 14px; }
  149. #disclaimer .small { margin-top: 0; max-width: 62ch; }
  150. code {
  151. font: 0.88em var(--mono);
  152. background: var(--tag-bg);
  153. padding: 2px 5px;
  154. border-radius: 4px;
  155. white-space: nowrap;
  156. }
  157. /* Cards */
  158. .cards {
  159. list-style: none;
  160. margin: 0;
  161. padding: 0;
  162. display: grid;
  163. grid-template-columns: 1fr;
  164. gap: 16px;
  165. }
  166. @media (min-width: 640px) {
  167. .cards { grid-template-columns: 1fr 1fr; }
  168. }
  169. .card {
  170. background: var(--surface);
  171. border: 1px solid var(--border);
  172. border-radius: var(--radius);
  173. padding: 20px;
  174. }
  175. .card-head {
  176. display: flex;
  177. align-items: baseline;
  178. justify-content: space-between;
  179. gap: 12px;
  180. margin-bottom: 8px;
  181. }
  182. .card h3 { margin: 0 0 8px; font-size: 18px; letter-spacing: -0.01em; }
  183. .card-head h3 { margin: 0; }
  184. .card p { margin: 0; color: var(--muted); font-size: 15.5px; }
  185. .card strong { color: var(--text); font-weight: 600; }
  186. .tag {
  187. flex-shrink: 0;
  188. font: 12px/1 var(--mono);
  189. color: var(--muted);
  190. background: var(--tag-bg);
  191. padding: 5px 8px;
  192. border-radius: 6px;
  193. }
  194. /* Footer */
  195. .site-footer { border-top: 1px solid var(--border); }
  196. .site-footer p { margin: 0; padding: 24px 0 32px; font-size: 14px; color: var(--muted); }