Skip to content

Commit 30c3ab6

Browse files
committed
updated barahkhadi main page ui
1 parent fd570a2 commit 30c3ab6

File tree

3 files changed

+136
-12
lines changed

3 files changed

+136
-12
lines changed

src/assets/styles/barahkhadi/index.css

Lines changed: 96 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,32 @@
1616

1717
& .consonants-grid {
1818
display: grid;
19-
gap: 1rem;
20-
grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
19+
gap: 1.25rem;
20+
grid-template-columns: repeat(auto-fit, 250px);
21+
justify-content: center;
2122
}
2223

2324
& .consonant-card {
24-
aspect-ratio: 1;
25+
width: 250px;
26+
height: 250px;
27+
position: relative;
2528
background-color: color-mix(in srgb, var(--secondary) 15%, var(--background) 85%);
2629
border-radius: 0.5rem;
2730
display: grid;
2831
place-items: center;
2932
text-decoration: none;
3033
transition: transform 0.2s ease;
34+
overflow: hidden;
3135
}
3236

3337
& .consonant-card:hover {
34-
transform: scale(1.05);
38+
transform: none;
3539
background-color: color-mix(in srgb, var(--primary) 15%, var(--background) 85%);
3640
transition: all 0.2s ease;
3741
}
3842

3943
& .consonant {
40-
font-size: 5rem;
44+
font-size: 7rem;
4145
font-weight: bold;
4246
color: var(--text);
4347
}
@@ -46,4 +50,91 @@
4650
scrollbar-width: thin;
4751
scrollbar-color: var(--primary) var(--background);
4852
}
53+
54+
& .consonant-card {
55+
position: relative;
56+
z-index: 1;
57+
overflow: hidden;
58+
}
59+
60+
& .consonant-card:hover {
61+
z-index: 1000;
62+
}
63+
64+
& .quick-view-btn {
65+
position: absolute;
66+
top: 8px;
67+
right: 8px;
68+
padding: 6px;
69+
font-size: 1.2rem;
70+
background: color-mix(in srgb, var(--text) 10%, var(--background) 90%);
71+
border: 1px solid var(--border);
72+
border-radius: 8px;
73+
cursor: pointer;
74+
color: var(--text);
75+
line-height: 1;
76+
z-index: 2;
77+
display: flex;
78+
align-items: center;
79+
justify-content: center;
80+
width: 32px;
81+
height: 32px;
82+
transition: all 0.2s ease;
83+
}
84+
85+
& .quick-view-btn:hover {
86+
background: color-mix(in srgb, var(--text) 15%, var(--background) 85%);
87+
transform: scale(1.05);
88+
}
89+
90+
& .quick-view-btn:active {
91+
transform: scale(0.95);
92+
}
93+
94+
& .barahkhadi-popover {
95+
visibility: hidden;
96+
opacity: 0;
97+
position: absolute;
98+
top: 0;
99+
left: 0;
100+
width: 100%;
101+
height: 100%;
102+
padding: 0.75rem;
103+
background: var(--background);
104+
border: 1px solid var(--border);
105+
border-radius: 0.5rem;
106+
box-shadow: 0 4px 12px color-mix(in srgb, var(--text) 15%, transparent);
107+
transition: opacity 0.2s, visibility 0.2s;
108+
display: flex;
109+
align-items: flex-end;
110+
justify-content: center;
111+
color: var(--text);
112+
overflow: hidden;
113+
z-index: 1;
114+
}
115+
116+
& .consonant-card[data-active="true"] .barahkhadi-popover {
117+
visibility: visible;
118+
opacity: 1;
119+
}
120+
121+
& .variations-grid {
122+
display: grid;
123+
grid-template-columns: repeat(4, 1fr);
124+
gap: 0.4rem;
125+
width: 100%;
126+
max-height: 100%;
127+
overflow-y: auto;
128+
}
129+
130+
& .variation {
131+
font-size: 1.5rem;
132+
padding: 0.4rem;
133+
text-align: center;
134+
background: color-mix(in srgb, var(--text) 5%, var(--background) 95%);
135+
border-radius: 4px;
136+
color: var(--text);
137+
border: 1px solid var(--border);
138+
}
139+
49140
}

src/pages/barahkhadi/[consonant].astro

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ export function getStaticPaths() {
4343
4444
const { consonant } = Astro.params;
4545
46-
const vowels = ["", "", "ि", "", "", "", "", "", "", "", "", "", ""];
46+
const matras = ["", "", "ि", "", "", "", "", "", "", "", "", "", ""];
4747
48-
const combinations = vowels.map((vovel) => consonant + vovel);
48+
const combinations = matras.map((matra) => consonant + matra);
4949
---
5050

5151
<BaseLayout meta={{ title: `Barahkhadi - ${consonant}` }}>

src/pages/barahkhadi/index.astro

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,59 @@ const consonants = [
1111
["", "", "", ""],
1212
["", "", "", ""]
1313
];
14+
15+
const matras = ["", "", "ि", "", "", "", "", "", "", "", "", ""];
1416
---
1517

18+
<script>
19+
document.querySelectorAll(".quick-view-btn").forEach((button) => {
20+
button.addEventListener("click", (e) => {
21+
// Close all other open popovers
22+
document.querySelectorAll('.consonant-card[data-active="true"]').forEach((card) => {
23+
if (card !== (e.currentTarget as HTMLElement).closest(".consonant-card")) {
24+
// Don't reset current card
25+
const btn = card.querySelector(".quick-view-btn") as HTMLElement;
26+
card.setAttribute("data-active", "false");
27+
btn.textContent = "🔍";
28+
}
29+
});
30+
31+
// Toggle current popover
32+
const card = (e.currentTarget as HTMLElement).closest(".consonant-card") as HTMLElement;
33+
const isActive = card.getAttribute("data-active") === "true";
34+
const newState = !isActive;
35+
card.setAttribute("data-active", String(newState));
36+
(e.currentTarget as HTMLElement).textContent = newState ? "✖️" : "🔍";
37+
});
38+
});
39+
</script>
40+
1641
<BaseLayout meta={{ title: "Barahkhadi" }}>
1742
<div class="container__barahkhadi">
1843
<div class="consonants-rows">
1944
{
20-
consonants.map((row, rowIndex) => (
45+
consonants.map((row) => (
2146
<div class="consonant-row">
2247
<div class="consonants-grid">
2348
{row.map((consonant) => (
24-
<a href={`/barahkhadi/${consonant}`} class="consonant-card">
25-
<div class="consonant-content">
49+
<div class="consonant-card" data-active="false">
50+
<a href={`/barahkhadi/${consonant}`} class="consonant-content">
2651
<span class="consonant">{consonant}</span>
52+
</a>
53+
<button class="quick-view-btn">🔍</button>
54+
<div class="barahkhadi-popover">
55+
<div class="variations-grid">
56+
{matras.map((matra) => (
57+
<div class="variation">{consonant + matra}</div>
58+
))}
59+
</div>
2760
</div>
28-
</a>
61+
</div>
2962
))}
3063
</div>
3164
</div>
3265
))
3366
}
3467
</div>
3568
</div>
36-
</BaseLayout>
69+
</BaseLayout>

0 commit comments

Comments
 (0)