main pico / pkg / apps / prose / public / read.css
Eric Bower  ·  2026-10-03
  1*,
  2::before,
  3::after {
  4  box-sizing: border-box;
  5}
  6
  7:root {
  8  --line-height: 1.3rem;
  9  --grid-height: 0.65rem;
 10  --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
 11  --pre: #252525;
 12  --bg-color: #282a36;
 13  --text-color: #f2f2f2;
 14  --link-color: #8be9fd;
 15  --visited: #bd93f9;
 16  --grey-light: #6a708e;
 17  --green: #50fa7b;
 18}
 19
 20html {
 21  background-color: var(--bg-color);
 22  color: var(--text-color);
 23  line-height: var(--line-height);
 24  font-family:
 25    -apple-system,
 26    BlinkMacSystemFont,
 27    "Segoe UI",
 28    Roboto,
 29    Oxygen,
 30    Ubuntu,
 31    Cantarell,
 32    "Fira Sans",
 33    "Droid Sans",
 34    "Helvetica Neue",
 35    Arial,
 36    sans-serif,
 37    "Apple Color Emoji",
 38    "Segoe UI Emoji",
 39    "Segoe UI Symbol";
 40  -webkit-text-size-adjust: 100%;
 41  -moz-tab-size: 4;
 42  -o-tab-size: 4;
 43  tab-size: 4;
 44}
 45
 46body {
 47  margin: 0 auto;
 48  max-width: var(--body-max-width, 720px);
 49  position: relative;
 50}
 51
 52header {
 53  margin: 1rem auto;
 54}
 55
 56h1 {
 57  margin: 0;
 58  padding: 0;
 59  border: 0;
 60  font-family: var(--font-mono);
 61  font-weight: bold;
 62  font-size: 1.6rem;
 63  line-height: calc(var(--line-height) * 1.5);
 64  margin-top: calc(var(--line-height) * 2.5);
 65  margin-bottom: var(--grid-height);
 66}
 67
 68p {
 69  margin-top: var(--line-height);
 70  margin-bottom: var(--line-height);
 71}
 72
 73article {
 74  overflow-wrap: break-word;
 75}
 76
 77footer {
 78  text-align: center;
 79  margin-bottom: calc(var(--line-height) * 3);
 80}
 81
 82a {
 83  color: var(--link-color);
 84  text-decoration: underline;
 85  text-decoration-thickness: 1px;
 86  text-underline-offset: 2px;
 87  padding: 0 2px;
 88  border-radius: 1px;
 89  transition: background-color 0.1s ease, color 0.1s ease;
 90}
 91
 92a:hover {
 93  background-color: var(--link-color);
 94  color: var(--bg-color);
 95  text-decoration: none;
 96}
 97
 98a:visited {
 99  color: var(--visited);
100}
101
102a:visited:hover {
103  background-color: var(--visited);
104  color: var(--bg-color);
105  text-decoration: none;
106}
107
108.mono,
109time {
110  font-family: var(--font-mono);
111  font-variant-numeric: tabular-nums;
112}
113
114.box-sm {
115  border: 1px solid var(--grey-light);
116  padding: var(--grid-height);
117  background-color: var(--pre);
118}
119
120.text-green {
121  color: var(--green);
122}
123
124.text-grey {
125  color: var(--grey-light);
126}
127
128.text-sm {
129  font-size: 0.8rem;
130}
131
132.text-md {
133  font-size: 1rem;
134  font-weight: bold;
135  line-height: var(--line-height);
136  margin-bottom: var(--grid-height);
137}
138
139.font-italic {
140  font-style: italic;
141}
142
143.transform-none {
144  text-transform: none;
145}
146
147.post-date {
148  width: 110px;
149}
150
151.flex {
152  display: flex;
153}
154
155.flex-1 {
156  flex: 1;
157}
158
159.items-center {
160  align-items: center;
161}
162
163.gap {
164  gap: var(--grid-height);
165}
166
167.my {
168  margin-top: var(--grid-height);
169  margin-bottom: var(--grid-height);
170}
171
172.my-4 {
173  margin-top: calc(var(--line-height) * 2);
174  margin-bottom: calc(var(--line-height) * 2);
175}
176
177@media only screen and (max-width: 40em) {
178  body {
179    padding: 0 var(--grid-height);
180  }
181
182  header {
183    margin: 0;
184  }
185}