style.css 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. /* monoexp.com — one stylesheet, no framework */
  2. :root {
  3. --bg: #fafaf9;
  4. --surface: #ffffff;
  5. --text: #1c1c1a;
  6. --muted: #5f5f5a;
  7. --border: #e4e4e0;
  8. --accent: #1c1c1a;
  9. --tag-bg: #f0f0ed;
  10. --focus: #2f6fdb;
  11. --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  12. --mono: ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
  13. --radius: 10px;
  14. --max: 760px;
  15. }
  16. @media (prefers-color-scheme: dark) {
  17. :root {
  18. --bg: #121211;
  19. --surface: #1a1a19;
  20. --text: #ececea;
  21. --muted: #a3a39e;
  22. --border: #2c2c2a;
  23. --accent: #ececea;
  24. --tag-bg: #252524;
  25. --focus: #7aa7f5;
  26. }
  27. }
  28. *,
  29. *::before,
  30. *::after { box-sizing: border-box; }
  31. html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
  32. body {
  33. margin: 0;
  34. background: var(--bg);
  35. color: var(--text);
  36. font: 17px/1.6 var(--sans);
  37. -webkit-font-smoothing: antialiased;
  38. }
  39. a { color: inherit; text-underline-offset: 3px; }
  40. a:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; border-radius: 4px; }
  41. .wrap {
  42. max-width: var(--max);
  43. margin: 0 auto;
  44. padding: 0 20px;
  45. }
  46. .sr-only {
  47. position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  48. overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
  49. }
  50. /* Header */
  51. .site-header { border-bottom: 1px solid var(--border); }
  52. .header-inner {
  53. display: flex;
  54. align-items: center;
  55. justify-content: space-between;
  56. height: 64px;
  57. }
  58. .wordmark {
  59. font: 600 18px/1 var(--mono);
  60. letter-spacing: -0.02em;
  61. text-decoration: none;
  62. }
  63. .wordmark span { color: var(--muted); }
  64. nav { display: flex; gap: 20px; }
  65. nav a {
  66. font-size: 15px;
  67. color: var(--muted);
  68. text-decoration: none;
  69. }
  70. nav a:hover { color: var(--text); }
  71. /* About */
  72. .about { padding: 56px 0 40px; }
  73. .about h1 {
  74. margin: 0 0 12px;
  75. font-size: clamp(30px, 6vw, 42px);
  76. line-height: 1.15;
  77. letter-spacing: -0.03em;
  78. }
  79. .about p { margin: 0 0 14px; color: var(--muted); max-width: 62ch; }
  80. .about .lede { font-size: 20px; color: var(--text); }
  81. /* Projects */
  82. #projects { padding-bottom: 64px; scroll-margin-top: 16px; }
  83. #projects h2 {
  84. margin: 0 0 16px;
  85. font: 600 13px/1 var(--mono);
  86. text-transform: uppercase;
  87. letter-spacing: 0.08em;
  88. color: var(--muted);
  89. }
  90. .projects {
  91. list-style: none;
  92. margin: 0;
  93. padding: 0;
  94. display: grid;
  95. grid-template-columns: 1fr;
  96. gap: 16px;
  97. }
  98. @media (min-width: 640px) {
  99. .projects { grid-template-columns: 1fr 1fr; }
  100. }
  101. .project {
  102. display: flex;
  103. flex-direction: column;
  104. background: var(--surface);
  105. border: 1px solid var(--border);
  106. border-radius: var(--radius);
  107. padding: 20px;
  108. }
  109. .project-head {
  110. display: flex;
  111. align-items: baseline;
  112. justify-content: space-between;
  113. gap: 12px;
  114. margin-bottom: 8px;
  115. }
  116. .project h3 { margin: 0; font-size: 19px; letter-spacing: -0.01em; }
  117. .tag {
  118. flex-shrink: 0;
  119. font: 12px/1 var(--mono);
  120. color: var(--muted);
  121. background: var(--tag-bg);
  122. padding: 5px 8px;
  123. border-radius: 6px;
  124. }
  125. .project p { margin: 0 0 18px; color: var(--muted); font-size: 15.5px; }
  126. .links {
  127. margin-top: auto;
  128. display: flex;
  129. gap: 18px;
  130. font-size: 15px;
  131. font-weight: 500;
  132. }
  133. .links a { text-decoration: none; border-bottom: 1px solid var(--border); padding-bottom: 1px; }
  134. .links a:hover { border-color: var(--accent); }
  135. /* Footer */
  136. .site-footer { border-top: 1px solid var(--border); }
  137. .site-footer p { margin: 0; padding: 24px 0 32px; font-size: 14px; color: var(--muted); }