|
1 | 1 | /* ================================================================ |
2 | | - Cards — directory cards with animated conic gradient glow |
| 2 | + Cards — clean directory cards |
3 | 3 | ================================================================ */ |
4 | 4 |
|
5 | | -@property --card-angle { |
6 | | - syntax: "<angle>"; |
7 | | - initial-value: 0deg; |
8 | | - inherits: false; |
9 | | -} |
10 | | - |
11 | 5 | .directory-card { |
12 | 6 | --card-accent: var(--accent); |
13 | 7 | --card-accent-rgb: 255, 126, 93; |
|
22 | 16 | background: var(--bg-elevated); |
23 | 17 | border: 1px solid var(--line); |
24 | 18 | box-shadow: var(--shadow-xs); |
25 | | - transition: box-shadow 400ms ease, border-color 300ms ease, transform 300ms ease; |
26 | | -} |
27 | | - |
28 | | -/* Animated conic gradient border on hover */ |
29 | | -.directory-card::before { |
30 | | - content: ""; |
31 | | - position: absolute; |
32 | | - inset: -1px; |
33 | | - border-radius: inherit; |
34 | | - padding: 1.5px; |
35 | | - background: conic-gradient( |
36 | | - from var(--card-angle), |
37 | | - transparent 0%, |
38 | | - var(--card-accent) 25%, |
39 | | - transparent 50%, |
40 | | - var(--card-accent) 75%, |
41 | | - transparent 100% |
42 | | - ); |
43 | | - -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); |
44 | | - -webkit-mask-composite: xor; |
45 | | - mask-composite: exclude; |
46 | | - opacity: 0; |
47 | | - transition: opacity 400ms ease; |
48 | | - pointer-events: none; |
49 | | - z-index: 1; |
50 | | -} |
51 | | - |
52 | | -/* Soft category-matched glow behind the card */ |
53 | | -.directory-card::after { |
54 | | - content: ""; |
55 | | - position: absolute; |
56 | | - inset: 0; |
57 | | - border-radius: inherit; |
58 | | - box-shadow: 0 0 0 0 transparent; |
59 | | - transition: box-shadow 400ms ease; |
60 | | - pointer-events: none; |
| 19 | + transition: box-shadow 300ms ease, border-color 200ms ease, transform 200ms ease; |
61 | 20 | } |
62 | 21 |
|
63 | 22 | .directory-card:hover { |
64 | | - border-color: transparent; |
65 | | - transform: translateY(-3px); |
66 | | -} |
67 | | - |
68 | | -.directory-card:hover::before { |
69 | | - opacity: 1; |
70 | | - animation: card-border-spin 3s linear infinite; |
71 | | -} |
72 | | - |
73 | | -.directory-card:hover::after { |
| 23 | + border-color: rgba(var(--card-accent-rgb), 0.3); |
| 24 | + transform: translateY(-2px); |
74 | 25 | box-shadow: |
75 | | - 0 0 0 1px rgba(var(--card-accent-rgb), 0.15), |
76 | | - 0 4px 20px -4px rgba(var(--card-accent-rgb), 0.2), |
77 | | - 0 0 40px -8px rgba(var(--card-accent-rgb), 0.08); |
78 | | -} |
79 | | - |
80 | | -@keyframes card-border-spin { |
81 | | - to { --card-angle: 360deg; } |
| 26 | + 0 2px 12px -2px rgba(var(--card-accent-rgb), 0.12), |
| 27 | + 0 0 0 1px rgba(var(--card-accent-rgb), 0.08); |
82 | 28 | } |
83 | 29 |
|
84 | | -/* Permanent colored left accent stripe */ |
85 | | -.skill-card { border-left: 3px solid var(--card-accent); } |
86 | | -.agent-card { border-left: 3px solid var(--card-accent); } |
87 | | -.package-card { border-left: 3px solid var(--card-accent); } |
88 | | -.category-card { border-left: 3px solid var(--card-accent); } |
89 | | - |
90 | | -/* Subtle type-tinted background */ |
91 | | -.directory-card.skill-card { |
92 | | - background: linear-gradient(135deg, var(--bg-elevated) 85%, rgba(var(--card-accent-rgb), 0.04) 100%); |
93 | | -} |
| 30 | +/* Accent top bar */ |
| 31 | +.skill-card { border-top: 2px solid var(--card-accent); } |
| 32 | +.agent-card { border-top: 2px solid var(--card-accent); } |
| 33 | +.package-card { border-top: 2px solid var(--card-accent); } |
| 34 | +.category-card { border-top: 2px solid var(--card-accent); } |
94 | 35 |
|
95 | 36 | .directory-card.is-clickable { cursor: pointer; } |
96 | 37 |
|
|
0 commit comments