Skip to content

Commit ebeb0f4

Browse files
committed
FIX frameworks flex
1 parent 5dcdc97 commit ebeb0f4

2 files changed

Lines changed: 71 additions & 34 deletions

File tree

docs-src/src/components/runtimes.tsx

Lines changed: 67 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ const styles: Record<string, CSSProperties> = {
1111
container: {
1212
display: 'flex',
1313
alignItems: 'center',
14-
justifyContent: 'center',
1514
gap: '2rem',
1615
paddingLeft: 31,
1716
paddingRight: 31,
@@ -21,11 +20,18 @@ const styles: Record<string, CSSProperties> = {
2120
whiteSpace: 'pre-line',
2221
minWidth: '210px',
2322
},
23+
displayRow: {
24+
alignItems: 'center',
25+
justifyContent: 'center',
26+
display: 'flex',
27+
flex: '1 1 auto'
28+
},
2429
iconsRow: {
2530
display: 'flex',
2631
alignItems: 'center',
2732
justifyContent: 'center',
28-
flexWrap: 'wrap',
33+
flexWrap: 'nowrap',
34+
flexShrink: 0
2935
},
3036
icon: {
3137
objectFit: 'contain',
@@ -51,10 +57,23 @@ const rows: Row[] = [
5157
{ icon: '/files/icons/svelte.svg', url: 'https://github.com/pubkey/rxdb/tree/master/examples/svelte', label: 'Svelte' },
5258
];
5359

60+
5461
export function HeroRuntimes() {
55-
const [hovered, setHovered] = useState<number | null>(null);
62+
const [hovered, setHovered] = useState<string | null>(null);
63+
64+
const text = hovered !== null ? hovered : 'these Frameworks';
65+
66+
67+
const displayRows = (() => {
68+
const middle = Math.ceil(rows.length / 2);
69+
const firstHalf = rows.slice(0, middle);
70+
const secondHalf = rows.slice(middle);
71+
return [
72+
firstHalf,
73+
secondHalf
74+
];
75+
})();
5676

57-
const text = hovered !== null ? rows[hovered].label : 'these Frameworks';
5877

5978
return (
6079
<div style={styles.container} className="column-mobile padding-top-64-28">
@@ -63,36 +82,52 @@ export function HeroRuntimes() {
6382
<br className="hide-mobile" />
6483
<span>{text}</span>
6584
</div>
66-
<div style={styles.iconsRow} className="gap-24-20">
67-
{rows.map((item, i) => {
68-
const defaultFilter = item.invert
69-
? 'grayscale(100%) brightness(1.8) invert(1)'
70-
: 'grayscale(100%) brightness(1.8)';
85+
<div style={{
86+
flex: 'auto',
87+
display: 'flex',
88+
flexWrap: 'wrap',
89+
alignItems: 'center',
90+
// display: 'grid',
91+
// gridTemplateColumns: 'repeat(auto-fit, minmax(250px, 1fr))', /* two equal halves */
92+
// listStyle: 'none',
93+
}} className="gap-24-20">
94+
{
95+
displayRows.map(displayRow => {
96+
return <div style={styles.displayRow}>{
97+
<div style={styles.iconsRow} className="gap-24-20">
98+
{displayRow.map((item) => {
99+
const defaultFilter = item.invert
100+
? 'grayscale(100%) brightness(1.8) invert(1)'
101+
: 'grayscale(100%) brightness(1.8)';
71102

72-
const hoverFilter = item.invert ? defaultFilter : 'none';
103+
const hoverFilter = item.invert ? defaultFilter : 'none';
73104

74-
return (
75-
<a
76-
key={i}
77-
href={item.url}
78-
onMouseEnter={() => setHovered(i)}
79-
onMouseLeave={() => setHovered(null)}
80-
target="_blank"
81-
>
82-
<img
83-
className="framework-icon"
84-
src={item.icon}
85-
loading="lazy"
86-
alt={item.label}
87-
style={{
88-
...styles.icon,
89-
filter: hovered === i ? hoverFilter : defaultFilter,
90-
opacity: hovered === i ? 1 : styles.icon.opacity,
91-
}}
92-
/>
93-
</a>
94-
);
95-
})}
105+
return (
106+
<a
107+
key={item.label}
108+
href={item.url}
109+
onMouseEnter={() => setHovered(item.label)}
110+
onMouseLeave={() => setHovered(null)}
111+
target="_blank"
112+
>
113+
<img
114+
className="framework-icon"
115+
src={item.icon}
116+
loading="lazy"
117+
alt={item.label}
118+
style={{
119+
...styles.icon,
120+
filter: hovered === item.label ? hoverFilter : defaultFilter,
121+
opacity: hovered === item.label ? 1 : styles.icon.opacity,
122+
}}
123+
/>
124+
</a>
125+
);
126+
})}
127+
</div>
128+
}</div>
129+
})
130+
}
96131
</div>
97132
</div>
98133
);

docs-src/src/css/custom.css

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -787,6 +787,7 @@ body {
787787
.framework-icon {
788788
width: 40px;
789789
height: 40px;
790+
flex-shrink: 0;
790791
}
791792

792793
.flex {
@@ -846,6 +847,7 @@ body {
846847

847848

848849
@media (max-width: 900px) {
850+
849851
.width-140-120 {
850852
width: 120px;
851853
}
@@ -981,8 +983,8 @@ body {
981983
}
982984

983985
.framework-icon {
984-
width: 28px;
985-
height: 28px;
986+
width: 30px;
987+
height: 30px;
986988
}
987989

988990

0 commit comments

Comments
 (0)