krz/hutch
an ios client for sourcehut
clone: git clone https://gitbay.org/krz/hutch.git
v2.3.1: website/styles.css · raw
1:root {
2 --bg: #f3f3f1;
3 --surface: #fff;
4 --border: #ddd;
5 --text: #111;
6 --muted: rgba(0, 0, 0, 0.62);
7 --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.06);
8 --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.06);
9}
10
11* {
12 box-sizing: border-box;
13}
14
15body {
16 font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
17 background: var(--bg);
18 color: var(--text);
19 margin: 0;
20}
21
22a,
23a:visited {
24 color: blue;
25}
26
27img {
28 max-width: 100%;
29 display: block;
30}
31
32.page {
33 max-width: 960px;
34 margin: 0 auto;
35 padding: 16px;
36}
37
38.privacy,
39.site-header,
40.content-grid,
41.screenshots,
42.resources,
43.feature-sections {
44 border: 1px solid var(--border);
45 background: var(--surface);
46 margin-bottom: 16px;
47 padding: 20px;
48}
49
50.brand-row {
51 display: flex;
52 justify-content: space-between;
53 gap: 20px;
54 align-items: flex-start;
55}
56
57.brand,
58.brand h1,
59.brand p {
60 color: black;
61 text-decoration: none;
62}
63
64.brand {
65 display: flex;
66 gap: 16px;
67 align-items: center;
68 min-width: 0;
69}
70
71.brand h1 {
72 margin: 0;
73}
74
75.subtitle,
76.brand p {
77 margin-top: 0;
78 opacity: 0.68;
79}
80
81.app-icon {
82 width: 80px;
83 border-radius: 18px;
84 border: 1px solid rgba(0, 0, 0, 0.08);
85 box-shadow: var(--shadow-sm), 0 4px 12px rgba(0, 0, 0, 0.08);
86 flex: 0 0 auto;
87}
88
89.hero-actions {
90 text-align: right;
91 flex: 0 0 auto;
92}
93
94.store-img {
95 height: 40px;
96 padding-bottom: 0.5rem;
97}
98
99.header-links {
100 font-size: 14px;
101}
102
103.intro-copy {
104 margin-top: 18px;
105}
106
107.lede {
108 margin: 0 0 10px;
109 font-weight: 700;
110 font-size: 1.125rem;
111}
112
113.intro-copy p:last-child {
114 margin-bottom: 0;
115}
116
117.content-grid,
118.feature-sections {
119 display: grid;
120 grid-template-columns: 1fr 1fr;
121 gap: 20px;
122}
123
124.content-grid>div,
125.feature-sections>.feature-panel {
126 min-width: 0;
127}
128
129.content-grid h2,
130.screenshots h2,
131.resources h2,
132.feature-panel h2 {
133 margin-top: 0;
134}
135
136.feature-list {
137 margin: 0;
138 padding-left: 1.2rem;
139 line-height: 1.55;
140}
141
142.feature-list li+li {
143 margin-top: 0.45rem;
144}
145
146.section-intro {
147 margin-top: 0;
148 color: var(--muted);
149}
150
151.shot-scroll {
152 display: grid;
153 grid-auto-flow: column;
154 grid-auto-columns: minmax(220px, 280px);
155 gap: 12px;
156 overflow-x: auto;
157 overscroll-behavior-x: contain;
158 padding-bottom: 8px;
159 scroll-snap-type: x proximity;
160 -webkit-overflow-scrolling: touch;
161}
162
163.shot-scroll::-webkit-scrollbar {
164 height: 10px;
165}
166
167.shot-scroll::-webkit-scrollbar-thumb {
168 background: rgba(0, 0, 0, 0.18);
169}
170
171.shot-card {
172 margin: 0;
173 scroll-snap-align: start;
174 border: 1px solid var(--border);
175 overflow: hidden;
176 background: #fafafa;
177 box-shadow: var(--shadow-md);
178}
179
180.shot-card img {
181 width: 100%;
182 height: auto;
183}
184
185.shot-card figcaption {
186 padding: 10px 12px 12px;
187 font-size: 0.95rem;
188 font-weight: 600;
189}
190
191.resource-list {
192 display: flex;
193 flex-direction: column;
194 gap: 6px;
195 margin: 0;
196 padding-left: 1.2rem;
197}
198
199.resource-list ul {
200 margin-top: 6px;
201}
202
203.site-footer,
204footer {
205 padding: 4px 2px 24px;
206}
207
208.privacy h2 {
209 margin: 0 0 20px;
210 font-size: 28px;
211 line-height: 1.1;
212}
213
214.privacy h3 {
215 margin: 24px 0 8px;
216 font-size: 18px;
217 line-height: 1.2;
218}
219
220.privacy p {
221 margin: 0 0 14px;
222 line-height: 1.5;
223}
224
225.privacy ul {
226 margin: 0 0 14px;
227 padding-left: 0;
228 list-style: none;
229}
230
231.privacy li {
232 padding-left: 1em;
233 text-indent: -1em;
234}
235
236.privacy li::before {
237 content: "- ";
238}
239
240.privacy a:hover {
241 text-decoration: underline;
242}
243
244code {
245 font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
246 font-size: 0.95em;
247}
248
249@media (max-width: 760px) {
250 .page {
251 padding: 12px;
252 }
253
254 .brand-row,
255 .content-grid,
256 .feature-sections {
257 grid-template-columns: 1fr;
258 display: grid;
259 }
260
261 .shot-scroll {
262 grid-auto-columns: minmax(240px, 78vw);
263 }
264
265 .brand-row {
266 gap: 16px;
267 }
268
269 .hero-actions {
270 text-align: left;
271 }
272
273 .brand {
274 align-items: flex-start;
275 }
276
277 .store-img {
278 height: 44px;
279 }
280
281 .content-grid,
282 .feature-sections {
283 gap: 12px;
284 }
285
286 .site-header,
287 .content-grid,
288 .screenshots,
289 .resources,
290 .feature-sections,
291 .privacy {
292 padding: 16px;
293 }
294
295 .feature-list,
296 .resource-list {
297 padding-left: 1.1rem;
298 }
299}
300
301.info-banner {
302 margin: 24px auto;
303 padding: 14px 16px;
304 max-width: 960px;
305
306 background: #fff3cd;
307 border: 1px solid #ffeeba;
308
309 color: #856404;
310 font-size: 14px;
311 line-height: 1.5;
312
313 text-align: center;
314}