vidhimudaliar commited on
Commit
0b1d09a
·
verified ·
1 Parent(s): e964752

Upload 4 files

Browse files
Files changed (1) hide show
  1. assets/css/codebook.css +43 -290
assets/css/codebook.css CHANGED
@@ -1,320 +1,73 @@
1
  /* ============================================
2
- Codebook Specific Styles
 
3
  ============================================ */
4
 
5
- body {
6
  padding: 20px;
7
  }
8
 
9
- .app {
 
 
10
  max-width: 1200px;
11
- display: grid;
12
- grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
13
- gap: 0;
14
- background: linear-gradient(145deg, #020617, #020617);
15
- border-radius: 24px;
16
- border: 1px solid var(--border);
17
- box-shadow: var(--shadow-soft);
18
- overflow: hidden;
19
- padding: 0;
20
- }
21
-
22
- @media (max-width: 900px) {
23
- .app {
24
- grid-template-columns: 1fr;
25
- }
26
- }
27
-
28
- .sidebar {
29
- border-right: 1px solid var(--border);
30
- background: radial-gradient(circle at top left, #020617 0, #030712 60%);
31
- padding: 18px 18px 16px;
32
- display: flex;
33
- flex-direction: column;
34
- gap: 14px;
35
- }
36
-
37
- @media (max-width: 900px) {
38
- .sidebar {
39
- border-right: none;
40
- border-bottom: 1px solid var(--border);
41
- }
42
  }
43
 
44
- .app-title {
 
45
  display: flex;
 
46
  align-items: center;
47
- justify-content: space-between;
48
- gap: 12px;
49
- }
50
-
51
- .app-title h1 {
52
- font-size: 18px;
53
- letter-spacing: 0.02em;
54
- margin: 0;
55
- }
56
-
57
- .app-title span {
58
- display: inline-flex;
59
- align-items: center;
60
- gap: 6px;
61
- padding: 4px 10px;
62
- border-radius: 999px;
63
- background: var(--accent-soft);
64
- color: var(--accent);
65
- font-size: 11px;
66
- text-transform: uppercase;
67
- letter-spacing: 0.09em;
68
- }
69
-
70
- .nav-links {
71
- display: flex;
72
- gap: 6px;
73
- flex-wrap: wrap;
74
- }
75
-
76
- .search-box {
77
- position: relative;
78
- }
79
-
80
- .search-box input {
81
- padding: 8px 30px 8px 12px;
82
- font-size: 13px;
83
  }
84
 
85
- .search-icon {
86
- position: absolute;
87
- right: 9px;
88
- top: 50%;
89
- transform: translateY(-50%);
90
- font-size: 13px;
91
- color: var(--text-muted);
92
- }
93
-
94
- .category-list {
95
- margin-top: 8px;
96
- padding: 0;
97
- list-style: none;
98
- overflow-y: auto;
99
- min-height: 0;
100
- flex: 1;
101
- }
102
-
103
- .category-item {
104
- border-radius: var(--radius-sm);
105
- padding: 8px 10px;
106
- margin-bottom: 4px;
107
- cursor: pointer;
108
- border: 1px solid transparent;
109
- transition: background 0.12s ease, border-color 0.12s ease, transform 0.05s ease;
110
- display: flex;
111
- flex-direction: column;
112
- gap: 2px;
113
- }
114
-
115
- .category-item:hover {
116
- background: rgba(15, 23, 42, 0.9);
117
- border-color: #1e293b;
118
- transform: translateY(-1px);
119
- }
120
-
121
- .category-item.active {
122
- background: var(--accent-soft);
123
- border-color: var(--accent);
124
- }
125
-
126
- .cat-name {
127
- font-size: 13px;
128
- font-weight: 600;
129
- }
130
-
131
- .cat-family {
132
- font-size: 11px;
133
- color: var(--text-muted);
134
- }
135
-
136
- .cat-meta {
137
- margin-top: 2px;
138
- font-size: 10px;
139
- color: var(--text-muted);
140
- display: flex;
141
- justify-content: flex-end;
142
  width: 100%;
143
- text-align: right;
144
- }
145
-
146
- .main {
147
- padding: 18px 20px 16px;
148
- display: flex;
149
- flex-direction: column;
150
- gap: 16px;
151
- }
152
-
153
- .header-row h2 {
154
- margin: 0;
155
- font-size: 18px;
156
- }
157
-
158
- .tag-row {
159
- display: flex;
160
- gap: 6px;
161
- flex-wrap: wrap;
162
- }
163
-
164
- .tag {
165
- font-size: 10px;
166
- padding: 3px 8px;
167
- border-radius: 999px;
168
- background: #020617;
169
- border: 1px solid var(--border);
170
- color: var(--text-muted);
171
- text-transform: uppercase;
172
- letter-spacing: 0.06em;
173
- }
174
-
175
- .tag.kind-safety {
176
- border-color: #f97316;
177
- color: #fed7aa;
178
- }
179
-
180
- .tag.kind-timing {
181
- border-color: #22c55e;
182
- color: #bbf7d0;
183
- }
184
-
185
- .tag.kind-effort {
186
- border-color: #eab308;
187
- color: #fef3c7;
188
- }
189
-
190
- .tag.kind-lowlevel {
191
- border-color: #a855f7;
192
- color: #e9d5ff;
193
- }
194
-
195
- .definition-card,
196
- .temporal-card,
197
- .video-card {
198
- padding: 14px 14px 12px;
199
- }
200
-
201
- .definition-card p {
202
- margin: 0 0 6px;
203
- font-size: 13px;
204
- line-height: 1.5;
205
- }
206
-
207
- .subheading {
208
- font-size: 11px;
209
- text-transform: uppercase;
210
- letter-spacing: 0.12em;
211
- color: var(--text-muted);
212
- margin-bottom: 4px;
213
- }
214
-
215
- .bullet-list {
216
- margin: 3px 0 0;
217
- padding-left: 16px;
218
- font-size: 12px;
219
- color: var(--text-muted);
220
- }
221
-
222
- .temporal-grid {
223
  display: grid;
224
- grid-template-columns: repeat(2, minmax(0, 1fr));
225
- gap: 10px;
226
- }
227
-
228
- @media (max-width: 600px) {
229
- .temporal-grid {
230
- grid-template-columns: 1fr;
231
- }
232
- }
233
-
234
- .temporal-block {
235
- border-radius: 12px;
236
- background: rgba(15, 23, 42, 0.9);
237
- border: 1px solid var(--border);
238
- padding: 8px 10px;
239
- font-size: 12px;
240
- }
241
-
242
- .temporal-block strong {
243
- display: block;
244
- font-size: 11px;
245
- text-transform: uppercase;
246
- letter-spacing: 0.13em;
247
- color: var(--text-muted);
248
- margin-bottom: 2px;
249
- }
250
-
251
- .video-header {
252
- display: flex;
253
- justify-content: space-between;
254
- align-items: center;
255
- gap: 10px;
256
- margin-bottom: 6px;
257
  }
258
 
259
- .video-header span {
260
- font-size: 11px;
261
- color: var(--text-muted);
 
262
  }
263
 
264
- .video-wrapper {
265
- position: relative;
 
 
 
 
266
  border-radius: 14px;
267
- background: #020617;
268
- border: 1px solid var(--border);
269
- padding: 12px;
270
  }
271
 
272
- .video-grid {
273
- display: grid;
274
- gap: 12px;
275
- grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
276
  }
277
 
278
- .video-item {
279
- display: flex;
280
- flex-direction: column;
281
- gap: 6px;
282
- }
283
-
284
- .video-item video {
285
  width: 100%;
286
- border-radius: 12px;
287
- border: 1px solid var(--border);
288
- background: #000;
289
- max-height: 240px;
290
- object-fit: cover;
291
  }
292
 
293
- .video-label {
294
- font-size: 11px;
295
- color: var(--text-muted);
296
- text-align: center;
297
- }
298
-
299
- .empty-video {
300
- padding: 26px 14px;
301
- text-align: center;
302
- font-size: 13px;
303
- color: var(--text-muted);
304
- }
305
 
306
- .hint {
307
- font-size: 11px;
308
- color: var(--text-muted);
309
- margin-top: 6px;
310
- }
311
 
312
- .kbd {
313
- display: inline-block;
314
- border-radius: 4px;
315
- border: 1px solid var(--border);
316
- padding: 1px 5px;
317
- font-size: 10px;
318
- background: #020617;
319
- margin: 0 1px;
320
  }
 
1
  /* ============================================
2
+ Category Page Fixes
3
+ (centers representative video & removes empty space)
4
  ============================================ */
5
 
6
+ body.category-page {
7
  padding: 20px;
8
  }
9
 
10
+ /* Use the same "app card" look, but single-column and roomy */
11
+ .category-app {
12
+ grid-template-columns: 1fr !important;
13
  max-width: 1200px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  }
15
 
16
+ /* Representative segment area: center content */
17
+ body.category-page .video-wrapper {
18
  display: flex;
19
+ justify-content: center;
20
  align-items: center;
21
+ padding: 16px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  }
23
 
24
+ /* Make the representative grid behave like a centered single card */
25
+ body.category-page .video-wrapper .video-grid {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  width: 100%;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  display: grid;
28
+ justify-content: center;
29
+ /* centers the column */
30
+ grid-template-columns: minmax(320px, 760px);
31
+ gap: 14px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  }
33
 
34
+ /* Video card should not stretch weirdly */
35
+ body.category-page .video-item {
36
+ width: 100%;
37
+ max-width: 760px;
38
  }
39
 
40
+ /* Let the representative video be larger and consistent */
41
+ body.category-page .video-item video {
42
+ width: 100%;
43
+ max-height: 420px;
44
+ object-fit: contain;
45
+ /* prevents aggressive crop */
46
  border-radius: 14px;
 
 
 
47
  }
48
 
49
+ /* Tighten spacing between sections so it feels less "floating" */
50
+ body.category-page .card {
51
+ margin-top: 0;
 
52
  }
53
 
54
+ /* Make the table area feel aligned */
55
+ body.category-page .table-card {
 
 
 
 
 
56
  width: 100%;
57
+ overflow-x: auto;
 
 
 
 
58
  }
59
 
60
+ /* On small screens, just go full width */
61
+ @media (max-width: 700px) {
62
+ body.category-page .video-wrapper .video-grid {
63
+ grid-template-columns: 1fr;
64
+ }
 
 
 
 
 
 
 
65
 
66
+ body.category-page .video-item {
67
+ max-width: none;
68
+ }
 
 
69
 
70
+ body.category-page .video-item video {
71
+ max-height: 320px;
72
+ }
 
 
 
 
 
73
  }