plz / static / css / tree.scss
597 lines · 517 sloc · 9.87 KB · b4519526403f0df6949673296f327af605cce975
Raw
1.repo-tabs {
2 position: fixed;
3 left: 5px;
4 top: 300px;
5 a { display: block; }
6}
7
8/* --- Main Layout Containers --- */
9
10.repo-header {
11 margin-bottom: 20px;
12}
13
14.repo-title-bar {
15 display: flex;
16 align-items: center;
17 flex-wrap: wrap;
18 gap: 8px;
19 min-height: 50px;
20}
21
22.repo-settings-link {
23 font-size: 14px;
24 line-height: 1;
25}
26
27.repo-header-area {
28 position: relative;
29
30 .repo-actions {
31 position: absolute;
32 top: 11px;
33 right: 0;
34 z-index: 5;
35 }
36}
37
38/* 1. The repo stats panel */
39.repo-stats {
40 display: flex;
41 flex-wrap: wrap;
42 align-items: center;
43 justify-content: space-evenly;
44 border: 1px solid #d8dee4;
45 border-radius: 5px;
46 background: #ffffff;
47 margin: 8px 0 10px;
48 min-height: 36px;
49 overflow: hidden;
50}
51
52.repo-stat-item {
53 display: flex;
54 align-items: center;
55 justify-content: center;
56 gap: 5px;
57 color: #111111 !important;
58 font-size: 14px !important;
59 font-weight: 600;
60 line-height: 20px;
61 min-width: 0;
62 padding: 7px 8px;
63 white-space: nowrap;
64
65 b {
66 font-weight: 700;
67 }
68
69 svg {
70 color: #111111;
71 flex: 0 0 auto;
72 height: 15px;
73 width: 15px;
74 }
75}
76
77a.repo-stat-item:hover {
78 background: #f6f8fa;
79 text-decoration: none;
80}
81
82@media (max-width: 760px) {
83 .repo-stats {
84 justify-content: space-around;
85 }
86}
87
88/* 2. The Control Bar (Branch, Code, Stars, Watch) */
89.repo-wrapper {
90 display: flex;
91 justify-content: space-between;
92 align-items: center;
93 margin-bottom: 15px;
94 flex-wrap: wrap;
95 gap: 10px;
96}
97
98.repo-wrapper--with-sidebar {
99 padding-right: 184px;
100}
101
102.branch-specific-container {
103 display: flex;
104 align-items: center;
105 gap: 10px;
106 flex-wrap: wrap;
107 width: 100%;
108}
109
110.branch-right-actions {
111 display: flex;
112 align-items: center;
113 gap: 10px;
114 margin-left: auto;
115}
116
117.add-file-btn {
118 display: inline-flex;
119 align-items: center;
120 justify-content: center;
121 width: 32px;
122 height: 32px;
123 background: #fafbfc;
124 border: 1px solid rgba(27, 31, 35, 0.15);
125 border-radius: 6px;
126 color: #24292e !important;
127 font-size: 18px;
128 font-weight: 400;
129 line-height: 1;
130 text-decoration: none;
131 cursor: pointer;
132
133 &:hover {
134 background: #2ea44f;
135 border-color: #2ea44f;
136 color: #fff !important;
137 }
138}
139
140/* Branch Select Dropdown */
141.branch-select {
142 appearance: none;
143 background-color: #fafbfc;
144 border: 1px solid rgba(27, 31, 35, 0.15);
145 border-radius: 6px;
146 color: #24292e;
147 cursor: pointer;
148 font-size: 14px;
149 font-weight: 500;
150 line-height: 20px;
151 max-width: 150px;
152 padding: 5px 35px 5px 12px;
153 text-overflow: ellipsis;
154 white-space: nowrap;
155 overflow: hidden;
156 background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
157 background-repeat: no-repeat;
158 background-position: right 8px center;
159 background-size: 10px;
160}
161
162.branches-link {
163 display: inline-flex;
164 align-items: center;
165 gap: 5px;
166 color: #24292e !important;
167 font-size: 14px;
168 font-weight: 500;
169 line-height: 20px;
170 padding: 5px 10px;
171 border: 1px solid rgba(27, 31, 35, 0.15);
172 border-radius: 6px;
173 background: #fafbfc;
174 white-space: nowrap;
175
176 svg {
177 color: #24292e;
178 height: 14px;
179 width: 14px;
180 flex: 0 0 auto;
181 }
182
183 b {
184 font-weight: 600;
185 }
186
187 &:hover {
188 background: #f3f4f6;
189 text-decoration: none;
190 }
191}
192
193.repo-mode-switch {
194 display: inline-flex;
195 align-items: center;
196 border: 1px solid rgba(27, 31, 35, 0.15);
197 border-radius: 6px;
198 overflow: hidden;
199 background: #ffffff;
200}
201
202.repo-mode-link {
203 display: inline-flex;
204 align-items: center;
205 height: 30px;
206 padding: 0 10px;
207 color: #24292e !important;
208 font-size: 13px !important;
209 line-height: 30px;
210 border-right: 1px solid rgba(27, 31, 35, 0.15);
211 white-space: nowrap;
212
213 &:last-child {
214 border-right: 0;
215 }
216
217 &.active {
218 background: #f6f8fa;
219 font-weight: 600;
220 }
221}
222
223a.repo-mode-link:hover {
224 background: #f6f8fa;
225 text-decoration: none;
226}
227
228/* --- Action Buttons (Code, Star, Watch) --- */
229
230.repo-code-container {
231 position: relative;
232}
233
234/* Green Code Button */
235.repo-code-button {
236 background-color: #2ea44f;
237 color: white;
238 padding: 5px 16px;
239 font-size: 14px;
240 font-weight: 600;
241 border: 1px solid rgba(27, 31, 35, 0.15);
242 border-radius: 6px;
243 cursor: pointer;
244 display: flex;
245 align-items: center;
246 justify-content: center;
247 transition: background-color 0.2s;
248
249 &:hover {
250 background-color: #2c974b;
251 }
252
253 &::after {
254 content: "";
255 display: inline-block;
256 width: 0;
257 height: 0;
258 margin-left: 5px;
259 vertical-align: middle;
260 border-top: 4px solid;
261 border-right: 4px solid transparent;
262 border-left: 4px solid transparent;
263 }
264}
265
266/* Clone Dropdown */
267.repo-clone-dropdown {
268 display: none;
269 position: absolute;
270 top: 100%;
271 right: 0;
272 margin-top: 4px;
273 padding: 16px;
274 background-color: #fff;
275 border: 1px solid #e1e4e8;
276 border-radius: 6px;
277 box-shadow: 0 8px 24px rgba(149, 157, 165, 0.2);
278 z-index: 100;
279 width: 300px;
280 color: #24292e;
281 font-size: 13px;
282
283 .clone-input-group {
284 display: flex;
285 margin-top: 8px;
286
287 input {
288 flex: 1;
289 font-family: monospace;
290 font-size: 12px;
291 padding: 5px;
292 border: 1px solid #e1e4e8;
293 border-radius: 4px 0 0 4px;
294 border-right: none;
295 background: #fafbfc;
296 }
297
298 button {
299 border-radius: 0 4px 4px 0;
300 background: #f6f8fa;
301 border: 1px solid #e1e4e8;
302 font-size: 12px;
303 padding: 5px 10px;
304 cursor: pointer;
305
306 &:hover {
307 background-color: #f3f4f6;
308 }
309 }
310 }
311}
312
313.repo-code-container:hover .repo-clone-dropdown {
314 display: block;
315}
316/* Repo Actions (Star / Watch buttons in the top bar) */
317.repo-actions {
318 display: flex;
319 align-items: center;
320 gap: 8px;
321 flex-wrap: wrap;
322
323 button {
324 display: inline-flex;
325 width: auto !important;
326 }
327}
328
329/* Two-column layout for the top of the repo (files + sidebar) */
330.repo-layout {
331 display: grid;
332 grid-template-columns: minmax(0, 1fr) 160px;
333 gap: 24px;
334 align-items: start;
335}
336
337.repo-main {
338 min-width: 0;
339}
340
341.repo-sidebar {
342 display: flex;
343 flex-direction: column;
344 gap: 24px;
345}
346
347.sidebar-section {
348 border-bottom: 1px solid #eaecef;
349 padding-bottom: 16px;
350
351 &:last-child {
352 border-bottom: 0;
353 padding-bottom: 0;
354 }
355}
356
357.sidebar-section-header {
358 display: flex;
359 align-items: center;
360 gap: 6px;
361 margin-bottom: 8px;
362
363 h3 {
364 font-size: 14px;
365 font-weight: 600;
366 color: #24292e;
367 margin: 0;
368
369 a {
370 color: inherit;
371 &:hover { color: #0366d6; text-decoration: none; }
372 }
373 }
374}
375
376.sidebar-count {
377 display: inline-flex;
378 align-items: center;
379 justify-content: center;
380 min-width: 18px;
381 height: 18px;
382 padding: 0 6px;
383 background: #eaecef;
384 color: #24292e;
385 border-radius: 9px;
386 font-size: 12px;
387 font-weight: 500;
388}
389
390.sidebar-description {
391 font-size: 14px;
392 color: #57606a;
393 margin: 0 0 12px;
394 line-height: 1.5;
395}
396
397.sidebar-description--empty {
398 font-style: italic;
399 color: #8b949e;
400}
401
402.sidebar-meta {
403 list-style: none;
404 padding: 0;
405 margin: 0;
406 display: flex;
407 flex-direction: column;
408 gap: 6px;
409
410 li {
411 display: flex;
412 align-items: center;
413 gap: 8px;
414 font-size: 13px;
415 color: #57606a;
416
417 svg {
418 color: #57606a;
419 flex: 0 0 auto;
420 }
421
422 a {
423 color: #57606a;
424 font-weight: 500;
425 &:hover { color: #0366d6; text-decoration: underline; }
426 }
427 }
428}
429
430.sidebar-empty {
431 font-size: 13px;
432 color: #8b949e;
433 margin: 0;
434 font-style: italic;
435}
436
437.sponsor-button {
438 display: inline-flex;
439 align-items: center;
440 gap: 6px;
441 padding: 5px 12px;
442 font-size: 13px;
443 font-weight: 500;
444 color: #24292e !important;
445 background: #fafbfc;
446 border: 1px solid rgba(27, 31, 35, 0.15);
447 border-radius: 6px;
448
449 &:hover {
450 background: #f3f4f6;
451 text-decoration: none;
452 }
453}
454
455.sidebar-release-latest {
456 display: flex;
457 flex-wrap: wrap;
458 align-items: center;
459 gap: 6px;
460 color: #24292e !important;
461
462 .sidebar-release-badge {
463 display: inline-flex;
464 align-items: center;
465 padding: 0 7px;
466 height: 20px;
467 background: #2ea44f;
468 color: #fff;
469 font-size: 11px;
470 font-weight: 600;
471 border-radius: 999px;
472 }
473
474 .sidebar-release-name {
475 font-weight: 600;
476 font-size: 14px;
477 }
478
479 .sidebar-release-date {
480 color: #57606a;
481 font-size: 12px;
482 flex-basis: 100%;
483 }
484
485 &:hover .sidebar-release-name {
486 color: #0366d6;
487 }
488}
489
490.sidebar-release-more {
491 display: inline-block;
492 margin-top: 8px;
493 font-size: 13px;
494 color: #0366d6;
495
496 &:hover { text-decoration: underline; }
497}
498
499.sidebar-contributors {
500 display: flex;
501 flex-wrap: wrap;
502 gap: 6px;
503}
504
505.sidebar-contributor {
506 display: inline-block;
507 width: 32px;
508 height: 32px;
509 border-radius: 50%;
510 overflow: hidden;
511 background: #f6f8fa;
512
513 img {
514 width: 100%;
515 height: 100%;
516 object-fit: cover;
517 display: block;
518 }
519}
520
521.sidebar-contributor--shadow {
522 cursor: default;
523}
524
525@media (max-width: 960px) {
526 .repo-layout {
527 grid-template-columns: minmax(0, 1fr);
528 }
529
530 .repo-wrapper--with-sidebar {
531 padding-right: 0;
532 }
533}
534
535/* Common style for Star/Watch buttons */
536.star-button, .watch-button {
537 display: inline-flex;
538 align-items: center;
539 padding: 3px 12px;
540 font-size: 12px;
541 font-weight: 500;
542 line-height: 20px;
543 color: #24292e;
544 background-color: #fafbfc;
545 border: 1px solid rgba(27, 31, 35, 0.15);
546 border-radius: 6px;
547 cursor: pointer;
548 transition: 0.2s cubic-bezier(0.3, 0, 0.5, 1);
549 transition-property: color, background-color, border-color;
550 margin-top: 0 !important; /* Override original */
551
552 &:hover {
553 background-color: #f3f4f6;
554 border-color: rgba(27, 31, 35, 0.15);
555 text-decoration: none;
556 }
557
558 svg {
559 height: 14px;
560 width: 14px;
561 margin-right: 4px;
562 fill: #6a737d;
563 }
564}
565
566/* --- Breadcrumbs --- */
567
568.tree-path {
569 font-size: 16px;
570 margin: 10px 0;
571 color: #586069;
572
573 a {
574 color: #0366d6;
575 &:hover { text-decoration: underline; }
576 }
577
578 /* Slash separator */
579 .slash {
580 color: #586069;
581 margin: 0 4px;
582 }
583}
584
585/* --- Readme Container --- */
586.readme {
587 border: 1px solid #e1e4e8;
588 border-radius: 6px;
589 padding: 32px;
590 margin-top: 24px;
591 background-color: #fff;
592
593 h1 { border-bottom: 1px solid #eaecef; padding-bottom: 0.3em; }
594 code { background-color: rgba(27,31,35,.05); padding: 0.2em 0.4em; border-radius: 3px; border: none; }
595 pre code { padding: 16px; overflow: auto; line-height: 1.45; background-color: #f6f8fa; display: block; }
596 img { max-width: 100%; box-sizing: content-box; background-color: #fff; }
597}
598