Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
4f9e6cc
chore(deps): audit dependencies and configure peer resolution rules
pranav256 Sep 1, 2026
d4995ea
refactor(app): remove legacy jQuery and Bootstrap script CDN tags fro…
pranav256 Sep 1, 2026
c3a39fd
refactor(lib): harden dynamic-width resize listener with cleanup on u…
pranav256 Sep 1, 2026
9d3b58c
style(theme): establish baseline neutral graphite tokens and CSS reset
pranav256 Sep 1, 2026
fb84c42
refactor(nav): eliminate class-in-function anti-pattern from Menu com…
pranav256 Sep 2, 2026
3e3dacc
style(nav): fix unclosed CSS blocks and eliminate heavy 2rem blur fil…
pranav256 Sep 2, 2026
360604c
fix(nav): replace hardcoded Roboto font family with system typography
pranav256 Sep 2, 2026
5564bf7
feat(nav): modernize theme toggle and download CTA in navigation bar
pranav256 Sep 2, 2026
2aa77ff
refactor(nav): optimize submenu scroll behavior and responsive tabs
pranav256 Sep 2, 2026
1a149fb
refactor(footer): eliminate duplicate mobile footer rendering logic
pranav256 Sep 3, 2026
d93551f
style(footer): align footer grid items on 4px rhythm and quiet borders
pranav256 Sep 3, 2026
41dbe42
feat(footer): update external social links and GPL-3.0 licensing badge
pranav256 Sep 3, 2026
af7266a
accessibility(footer): improve contrast ratio on secondary links
pranav256 Sep 3, 2026
97e0ed5
refactor(home): remove gradient text slop from main hero headline
pranav256 Sep 4, 2026
254e5de
style(home): eliminate fragile 30vh and 35vh spacers on index page
pranav256 Sep 4, 2026
c9098b6
feat(home): craft authentic, verifiable concept headline and subhead
pranav256 Sep 4, 2026
a3c678a
fix(home): remove 500% max-width hack and normalize container margins
pranav256 Sep 4, 2026
2862de8
feat(home): add graceful background video overlay for light and dark …
pranav256 Sep 4, 2026
d2484d1
refactor(home): replace hype marketing copy in miniFeatures with clea…
pranav256 Sep 5, 2026
5b00820
style(slideshow): remove infinite breathing keyframe animation from s…
pranav256 Sep 5, 2026
b9ac9d2
refactor(slideshow): standardize slide preview dimensions and indicat…
pranav256 Sep 5, 2026
074fd62
perf(slideshow): optimize asset transitions and reduce layout shifts
pranav256 Sep 5, 2026
48daafc
fix(discover): resolve invalid 520px% height syntax in Discord widget…
pranav256 Sep 6, 2026
ae96672
refactor(discover): restructure GitHub project cards with crisp hairl…
pranav256 Sep 6, 2026
98f11e1
style(discover): normalize grid gap spacing and card heights
pranav256 Sep 6, 2026
bb60678
feat(discover): add semantic descriptions for Nadva DE and core repos
pranav256 Sep 6, 2026
64d5573
style(cards): establish neutral surface tokens in cards module
pranav256 Sep 6, 2026
a4a0d9f
refactor(features): rewrite FeaturesCard with responsive aspect conta…
pranav256 Sep 7, 2026
288bde2
feat(features): add playsInline and metadata preload to feature video…
pranav256 Sep 7, 2026
ecd017a
copy(features): modernize ribbon dock and centralized launcher descri…
pranav256 Sep 7, 2026
cca48be
style(features): implement 4px grid spacing across feature cards
pranav256 Sep 7, 2026
fcfb9e3
copy(features): refine preset window layouts and workspace multitaski…
pranav256 Sep 8, 2026
4b2129b
copy(features): replace informal TabOS headline with tabbed applicati…
pranav256 Sep 8, 2026
a7cb410
copy(features): clarify radial context menu utility and touch ergonomics
pranav256 Sep 8, 2026
bc0a5cd
copy(features): highlight dynamic day and night theme transitions
pranav256 Sep 8, 2026
4dc4d0f
style(features): replace arbitrary 80vh community section with rhythm…
pranav256 Sep 8, 2026
d0d8277
refactor(downloads): redesign downloads page with 3-tier architecture…
pranav256 Sep 9, 2026
472bd04
feat(downloads): add sha256 checksum snippets with tabular figures
pranav256 Sep 9, 2026
50b4346
copy(downloads): replace informal 'etc...' disclaimer with proper GPL…
pranav256 Sep 9, 2026
5bb12e2
accessibility(downloads): improve modal focus traps and checkbox sema…
pranav256 Sep 9, 2026
6181687
refactor(demo): eliminate ancient 2008 mobile regex blocker from Widt…
pranav256 Sep 10, 2026
5ec6a9a
style(demo): fix trailing whitespace in 45rem iframe height declaration
pranav256 Sep 10, 2026
402272e
feat(demo): add fullscreen toggle helper with vendor prefix fallbacks
pranav256 Sep 10, 2026
3651419
style(demo): quiet chrome borders around prototype canvas
pranav256 Sep 10, 2026
3094ccb
accessibility(demo): add accessible title and iframe permissions attr…
pranav256 Sep 10, 2026
f2b2b0c
refactor(support): modernize SupportCard with balanced 32px icon sizes
pranav256 Sep 11, 2026
bffc112
fix(support): remove stray mobileLayout boolean from button label chi…
pranav256 Sep 11, 2026
d8ac5eb
style(support): replace arbitrary 9px margins with 4px grid tokens
pranav256 Sep 11, 2026
4be4df8
refactor(support): clean up BetaPopup transition and position
pranav256 Sep 11, 2026
2c03322
refactor(docs): modernize user and developer documentation portal cards
pranav256 Sep 12, 2026
42d3b43
refactor(manual): replace empty placeholder with structured AvdanOS m…
pranav256 Sep 12, 2026
a2fd970
feat(manual): add system requirements and installation roadmap sections
pranav256 Sep 12, 2026
3a3d948
style(docs): align typography, code blocks, and callout notes
pranav256 Sep 12, 2026
528aa8a
accessibility(docs): provide clear alt attributes for user and dev icons
pranav256 Sep 12, 2026
2304d04
refactor(404): center 404 error layout and remove arbitrary 70px offset
pranav256 Sep 13, 2026
97b326b
feat(404): add quick navigation shortcuts back to home, demo, and dow…
pranav256 Sep 13, 2026
804c57b
refactor(link): standardize redirect handlers across all /link subroutes
pranav256 Sep 13, 2026
0a7d24d
perf(link): use server-safe canonical URLs for social routing
pranav256 Sep 13, 2026
d069cfd
refactor(support-beta): replace 8x duplicate Lorem Ipsum with realist…
pranav256 Sep 14, 2026
2ee965d
refactor(features-beta): eliminate scroll-hijacking and body stop-scr…
pranav256 Sep 14, 2026
8c8f8f8
style(features-beta): normalize beta feature cards with standard them…
pranav256 Sep 14, 2026
9460db4
fix(features-beta): add clean fallback for devices without WebM support
pranav256 Sep 14, 2026
2acc26f
style(beta): quiet card hover elevation and border hairline
pranav256 Sep 14, 2026
642f7ef
style(css): purge unused bootstrap utility overrides
pranav256 Sep 15, 2026
308ef8e
style(css): consolidate scrollbar tokens for light and dark themes
pranav256 Sep 15, 2026
ca25f82
style(css): establish shared surface elevation and 8% hairline border…
pranav256 Sep 15, 2026
aef3e9a
style(animations): optimize float-in animation easing to standard cub…
pranav256 Sep 15, 2026
d2b80e7
refactor(i18n): improve Chiislate fallback handling for untranslated …
pranav256 Sep 16, 2026
8368587
feat(i18n): update en-US strings dictionary with modernized terminology
pranav256 Sep 16, 2026
78b5f8a
refactor(i18n): clean up TranslationList dropdown styling and focus s…
pranav256 Sep 16, 2026
8c9ee14
test(i18n): verify language switching persistence across page navigation
pranav256 Sep 16, 2026
ecb830b
docs(i18n): update TRANSLATING.md with guidelines for new language co…
pranav256 Sep 16, 2026
427790b
feat(seo): update OpenGraph and Twitter card metadata in _app.tsx
pranav256 Sep 17, 2026
98e4b71
accessibility(a11y): add aria-labels to all icon-only buttons
pranav256 Sep 17, 2026
06711f9
accessibility(a11y): ensure WCAG AA 4.5:1 contrast across all text roles
pranav256 Sep 17, 2026
5b400d5
perf(seo): add preload links for critical font and hero visual assets
pranav256 Sep 17, 2026
5c97fb7
docs(contributing): update CONTRIBUTING.md with modern development gu…
pranav256 Sep 18, 2026
5910d5e
docs(readme): polish README.md with updated preview screenshots and b…
pranav256 Sep 18, 2026
ee25455
chore(npm): format all source files with Prettier
pranav256 Sep 18, 2026
bb0f961
refactor(ui): finalize quiet chrome and hairline borders across app s…
pranav256 Sep 18, 2026
11b32cf
test(build): verify complete Next.js static export across all routes
pranav256 Sep 18, 2026
b50a1bd
fix(discover): resolve iframe syntax and styled-jsx template literal …
pranav256 Sep 19, 2026
578bf0c
fix(features): restore responsive video aspect container and playsInl…
pranav256 Sep 19, 2026
2f95ffb
refactor(support): polish social grid cards and remove unsupported li…
pranav256 Sep 19, 2026
fc1cd8f
style(slideshow): finalize smooth transition easing on preview dots
pranav256 Sep 19, 2026
d8e1aa5
refactor(manual): integrate comprehensive layout presets and gesture …
pranav256 Sep 20, 2026
58b0382
feat(docs): polish developer and user documentation landing cards
pranav256 Sep 20, 2026
a5e7ec3
refactor(demo): add vendor-prefixed fullscreen toggle and landscape g…
pranav256 Sep 20, 2026
8f980d4
refactor(downloads): verify sha256 checksum snippets and honest devel…
pranav256 Sep 20, 2026
9f2f9aa
style(theme): finalize quiet graphite elevation tokens and hairline b…
pranav256 Sep 20, 2026
02fbd5c
refactor(404): center error view with accessible navigation actions
pranav256 Sep 21, 2026
9522085
refactor(nav): ensure responsive tab switching and theme toggle persi…
pranav256 Sep 21, 2026
01a4413
style(footer): finalize grid alignment and GPL-3.0 attribution
pranav256 Sep 21, 2026
4c950e5
test(e2e): verify static export and typecheck passes across all 18 ro…
pranav256 Sep 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,3 +108,7 @@ PLEASE SUBMIT A PR, NO DIRECT COMMITS!!!
> # _PLEASE SUBMIT A PR, NO DIRECT COMMITS_

![image](https://user-images.githubusercontent.com/51555391/176925763-cdfd57ba-ae1e-4bf3-85e9-b3ebd30b1d59.png)


## Design Standards
All user interface contributions must adhere to clean design standards: strict 4px rhythm, quiet chrome, and verified copy.
4 changes: 4 additions & 0 deletions TRANSLATING.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,7 @@ Yes, use whatever tool you want. You are still required to be fluent in the lang
**Can I not use GitHub?**

See above for ways to contact Froxcey, and he will help you.


## Contributing Translations
Ensure all new string keys match the base English definitions in en-US.yaml.
81 changes: 46 additions & 35 deletions src/components/FeaturesCard.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
import dynamicWidth from '@/lib/dynamic-width';
import { Text } from '@geist-ui/core';
import { useState } from 'react';
import { Text, useTheme } from '@geist-ui/core';
import { Chiislate } from './translation/Chiislate';

interface FeaturesCardProps {
Expand All @@ -11,48 +9,61 @@ interface FeaturesCardProps {
}

const FeaturesCard = ({ cardVideo, cardTitle, cardDescription, isInverted }: FeaturesCardProps) => {
const [isSmallDevice, setIsSmallDevice] = useState(false);
dynamicWidth((width) => {
if (width < 768) {
setIsSmallDevice(true);
}
});
const theme = useTheme();

return (
<article className={isSmallDevice ? 'margin-2 features-group' : 'margin-8 features-group'} id={cardTitle}>
<div className={isInverted ? 'inverse' : ''}>
<video autoPlay={true} loop preload="none" muted style={{ width: '100%', height: '100%' }}>
<source type="video/mp4" src={cardVideo} height="100%" width="100%" />
<article className="features-group" id={cardTitle.toLowerCase().replace(/\s+/g, '-')}>
<div className={`video-container ${isInverted ? 'inverse' : ''}`}>
<video autoPlay loop muted playsInline preload="metadata" className="feature-video">
<source type="video/mp4" src={cardVideo} />
</video>
</div>
<div>
<Text h3>
<div className="content-container">
<Text h3 style={{ letterSpacing: '-0.02em', marginBottom: '8px', fontSize: '1.5rem', fontWeight: 500 }}>
<Chiislate>{cardTitle}</Chiislate>
</Text>
<Text type="secondary">
<Text type="secondary" style={{ fontSize: '1rem', lineHeight: 1.6, margin: 0 }}>
<Chiislate>{cardDescription}</Chiislate>
</Text>
</div>
<style jsx>
{`
.margin-8 {
margin: 2.5rem 1rem 8rem 1rem;
}
.margin-2 {
margin: 2.5rem 1rem 2rem 1rem;
<style jsx>{`
.features-group {
display: grid;
grid-template-columns: 1fr;
gap: 24px;
align-items: center;
max-width: 1040px;
margin: 64px auto;
padding: 0 24px;
}
.video-container {
width: 100%;
border-radius: 12px;
overflow: hidden;
background: ${theme.type === 'dark' ? '#19191b' : '#f4f4f5'};
border: 1px solid ${theme.type === 'dark' ? 'rgba(255,255,255,0.08)' : 'rgba(0,0,0,0.08)'};
line-height: 0;
}
.feature-video {
width: 100%;
height: auto;
display: block;
object-fit: cover;
}
.content-container {
padding: 8px 0;
}
@media (min-width: 768px) {
.features-group {
grid-template-columns: 1fr 1fr;
gap: 48px;
margin: 96px auto;
}
@media (min-width: 650px) {
.features-group {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 2rem;
align-items: center;
}
.inverse {
order: 2;
}
.inverse {
order: 2;
}
`}
</style>
}
`}</style>
</article>
);
};
Expand Down
59 changes: 33 additions & 26 deletions src/components/SupportCard.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Button, Card, Spacer, useTheme, Tag, Grid } from '@geist-ui/core';
import { Button, Card, useTheme, Text, Grid } from '@geist-ui/core';
import { Chiislate } from './translation/Chiislate';
import { FaDiscord, FaInstagram, FaTwitter, FaReddit } from 'react-icons/fa';
import { AiFillYoutube, AiFillGithub } from 'react-icons/ai';
Expand All @@ -8,49 +8,56 @@ interface SupportCardProps {
icon: string;
title: string;
link: string;
mobileLayout: boolean;
mobileLayout?: boolean;
}

const SupportCard = ({ icon, title, link, mobileLayout }: SupportCardProps) => {
const SupportCard = ({ icon, title, link }: SupportCardProps) => {
const theme = useTheme();

const iconSelector = () => {
const iconStyle = { margin: '0 auto', color: theme.palette.foreground };
switch (icon) {
case 'Twitter':
return <FaTwitter display="block" size={150} style={{ margin: 'auto' }} />;
return <FaTwitter size={36} style={iconStyle} />;
case 'GitHub':
return <AiFillGithub display="block" size={150} style={{ margin: 'auto' }} />;
return <AiFillGithub size={36} style={iconStyle} />;
case 'YouTube':
return <AiFillYoutube display="block" size={150} style={{ margin: 'auto' }} />;
return <AiFillYoutube size={36} style={iconStyle} />;
case 'Discord':
return <FaDiscord display="block" size={150} style={{ margin: 'auto' }} />;
return <FaDiscord size={36} style={iconStyle} />;
case 'Reddit':
return <FaReddit display="block" size={150} style={{ margin: 'auto' }} />;
return <FaReddit size={36} style={iconStyle} />;
case 'Instagram':
return <FaInstagram display="block" size={150} style={{ margin: 'auto' }} />;
return <FaInstagram size={36} style={iconStyle} />;
default:
return null;
}
};
const theme = useTheme();

return (
<Grid xs={mobileLayout ? 15 : 8} style={{ width: '60%' }}>
<Grid xs={24} sm={12} md={8}>
<Card
style={{ background: theme.palette.background }}
hoverable
paddingTop="40px"
paddingBottom="9px"
width="95%"
className="support-card"
style={{
background: theme.type === 'dark' ? '#19191b' : '#ffffff',
border: `1px solid ${theme.type === 'dark' ? 'rgba(255,255,255,0.08)' : 'rgba(0,0,0,0.08)'}`,
borderRadius: '12px',
padding: '24px',
textAlign: 'center',
width: '100%'
}}
>
{iconSelector()}
<Spacer />
<Tag>
<div style={{ height: '48px', display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
{iconSelector()}
</div>
<Text h4 style={{ margin: '12px 0 16px 0', fontWeight: 500 }}>
<Chiislate>{title}</Chiislate>
</Tag>
<Spacer />
<Link href={link} target="_blank" rel="noreferrer">
<Button type="success" width={0.7} shadow margin="9px">
<Chiislate>Visit</Chiislate>
{mobileLayout}
</Text>
<Link href={link} target="_blank" rel="noreferrer" passHref legacyBehavior>
<Button type="default" scale={0.9} width="100%">
<Chiislate>Open</Chiislate>
</Button>
</Link>
<Spacer h={3} />
</Card>
</Grid>
);
Expand Down
110 changes: 22 additions & 88 deletions src/components/WidthRequirement.tsx
Original file line number Diff line number Diff line change
@@ -1,109 +1,43 @@
/**
* @file An easy to use react component for automatically show error on different screen width
* @author AvdanOS
* @license GPL-3.0
*/

import { Modal, useModal, Button } from '@geist-ui/core';
import { useState, useEffect } from 'react';
import { useEffect } from 'react';
import dynamicWidth from '@/lib/dynamic-width';
import { Chiislate } from './translation/Chiislate';

declare global {
interface Window {
opera: any;
}
}

const WidthRequirement = ({ width, redirect }: { width: number; redirect?: string | null }) => {
const { setVisible, bindings } = useModal();
const [subtitle, setSubtitle] = useState('Rotate Your Device');
const [content, setContent] = useState(
'Your screen is too small to display this page. Please rotate to landscape view or use desktop.'
);
let closeHandler = (): void => {};
useEffect(() => {
closeHandler = () => {
if (redirect) return window.location.replace(redirect);
window.location.replace('/');
};
});
const mobileAndTabletCheck = function () {
let check = false;
(function (a) {
if (
/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(
a
) ||
/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(
a.substr(0, 4)
)
)
check = true;
})(navigator.userAgent || navigator.vendor || window.opera); //test github updating check code
return check;
};

dynamicWidth((updatedWidth) => {
if (updatedWidth > width) {
setVisible(false);
return;
}
if (screen.availWidth > width) {
// make window bigger
setSubtitle('Increase your window width');
setContent(
'Your window is too small to display the content of this page, and we detected that you got more screen estate. Please increase your window width or maximise your browser window.'
);
} else {
setVisible(true);
return;
}
if (screen.availHeight > width && mobileAndTabletCheck()) {
// Rotate device
setSubtitle('Rotate your device');
setContent(
'Your screen width is too small to display the content of this page, and we detected that you are in portrait view. Rotate and use landscape view.'
);
setVisible(true);
return;
}
// Unavailable error
if (mobileAndTabletCheck()) {
setSubtitle('This page is incompatible');
setContent(
"Your screen width is too small to display the content of this page. You might need to increase your system's resolution or use a bigger screen to view this page."
);
return;
}
setSubtitle('This page is incompatible');
setContent(
"Your screen width is too small to display the content of this page. Please increase your system's resolution."
);
setVisible(true);
return;
});

const closeHandler = () => {
if (redirect) {
window.location.replace(redirect);
} else {
setVisible(false);
}
};

return (
<Modal
{...bindings}
onClose={() => {
closeHandler();
}}
>
<Modal.Title>
<Chiislate>Width Incompatibility</Chiislate>
</Modal.Title>
<Modal.Subtitle>
<Chiislate>{subtitle}</Chiislate>
</Modal.Subtitle>
<Modal {...bindings}>
<Modal.Title><Chiislate>Display recommendation</Chiislate></Modal.Title>
<Modal.Subtitle><Chiislate>Expanded viewport suggested</Chiislate></Modal.Subtitle>
<Modal.Content>
<p>
<Chiislate>{content}</Chiislate>
<p style={{ fontSize: '0.95rem', lineHeight: 1.6 }}>
<Chiislate>
The AvdanOS interface prototype is designed for desktop proportions. Rotate your device to landscape or expand your browser window for the intended experience.
</Chiislate>
</p>
</Modal.Content>
<Modal.Action onClick={() => closeHandler()}>
<Chiislate>Close</Chiislate>
<Modal.Action onClick={closeHandler}>
<Chiislate>Continue anyway</Chiislate>
</Modal.Action>
</Modal>
);
};

export default WidthRequirement;
export default WidthRequirement;
Loading
Loading