@chrryai/chrry 1.1.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/About.module.scss +112 -0
- package/Account.module.scss +159 -0
- package/AddToHomeScreen.module.scss +126 -0
- package/Affiliate.module.scss +245 -0
- package/AffiliateDashboard.module.scss +269 -0
- package/Agent.module.scss +197 -0
- package/AnimatedWrapper.module.scss +0 -0
- package/App.module.scss +283 -0
- package/Bookmark.module.scss +15 -0
- package/Calendar.module.scss +824 -0
- package/CharacterProfiles.module.scss +29 -0
- package/Chat.module.scss +932 -0
- package/Checkbox.module.scss +67 -0
- package/Chrry.module.scss +69 -0
- package/Collaborate.module.scss +22 -0
- package/CollaborationStatus.module.scss +17 -0
- package/CollaborationTooltip.module.scss +257 -0
- package/ColorScheme.module.scss +24 -0
- package/EditThread.module.scss +51 -0
- package/EmptyStateTips.module.scss +52 -0
- package/EnableNotifications.module.scss +20 -0
- package/EventModal.module.scss +277 -0
- package/Img.module.scss +48 -0
- package/Instructions.module.scss +333 -0
- package/LICENSE +664 -0
- package/LanguageSwitcher.module.scss +21 -0
- package/Loading.module.scss +32 -0
- package/MarkdownContent.module.scss +161 -0
- package/MemoryConsent.module.scss +41 -0
- package/Menu.module.scss +272 -0
- package/Message.module.scss +470 -0
- package/Messages.module.scss +86 -0
- package/Modal.module.scss +118 -0
- package/README.md +112 -0
- package/Search.module.scss +26 -0
- package/Select.module.scss +32 -0
- package/Share.module.scss +84 -0
- package/Sidebar.module.scss +69 -0
- package/SignIn.module.scss +129 -0
- package/Skeleton.module.scss +232 -0
- package/SplashScreen.module.scss +189 -0
- package/Star.module.scss +15 -0
- package/Store.module.scss +240 -0
- package/Subscribe.module.scss +219 -0
- package/Testimonials.module.scss +33 -0
- package/Thread.module.scss +111 -0
- package/Threads.module.scss +105 -0
- package/TypingIndicator.module.scss +93 -0
- package/Users.module.scss +98 -0
- package/Version.module.scss +22 -0
- package/Weather.module.scss +31 -0
- package/Why.module.scss +79 -0
- package/__tests__/README.md +126 -0
- package/__tests__/TestComponent.module.scss +236 -0
- package/animations.scss +163 -0
- package/breakpoints.scss +8 -0
- package/context/AppContext.module.scss +22 -0
- package/context/providers/README.md +329 -0
- package/dist/About.module-RPTFOKG6.scss +112 -0
- package/dist/Account.module-AA2NOD5S.scss +159 -0
- package/dist/AddToHomeScreen.module-P6HAQ4QD.scss +126 -0
- package/dist/Affiliate.module-YM7MG54E.scss +245 -0
- package/dist/AffiliateDashboard.module-SZQJJBME.scss +269 -0
- package/dist/Agent.module-66YIBDMM.scss +197 -0
- package/dist/App.module-TOWYJFPB.scss +283 -0
- package/dist/Bookmark.module-UVMQ4TED.scss +15 -0
- package/dist/Calendar.module-HHEIXJEA.scss +824 -0
- package/dist/CharacterProfiles.module-KABR34TV.scss +29 -0
- package/dist/Chat.module-Y4TGJLBQ.scss +932 -0
- package/dist/Checkbox.module-RNW2YOC5.scss +67 -0
- package/dist/Chrry.module-SLPTRY52.scss +69 -0
- package/dist/Collaborate.module-MLRE23FZ.scss +22 -0
- package/dist/CollaborationStatus.module-CRGOOW56.scss +17 -0
- package/dist/ColorScheme.module-N7SJ5N52.scss +24 -0
- package/dist/EditThread.module-L3HOEGS3.scss +51 -0
- package/dist/EmptyStateTips.module-JLNPQ4OO.scss +52 -0
- package/dist/EnableNotifications.module-C4MYQTUA.scss +20 -0
- package/dist/EventModal.module-K7VNKTCE.scss +277 -0
- package/dist/Instructions.module-JMFWEXAP.scss +333 -0
- package/dist/LanguageSwitcher.module-MT2SIZ4L.scss +21 -0
- package/dist/Loading.module-OU42QILE.scss +32 -0
- package/dist/MarkdownContent.module-64GHE3YP.scss +161 -0
- package/dist/MemoryConsent.module-FZL3REH4.scss +41 -0
- package/dist/Menu.module-RVXPXILR.scss +272 -0
- package/dist/Message.module-5UUYCVY2.scss +470 -0
- package/dist/Messages.module-GBPUAPAI.scss +86 -0
- package/dist/Modal.module-TOU4YLFQ.scss +118 -0
- package/dist/Search.module-GU3BRADG.scss +26 -0
- package/dist/Select.module-R7QM256C.scss +32 -0
- package/dist/Share.module-VQBCBSA5.scss +84 -0
- package/dist/Sidebar.module-AUSDVTCY.scss +69 -0
- package/dist/SignIn.module-53SOSG63.scss +129 -0
- package/dist/Skeleton.module-REMEBLDY.scss +232 -0
- package/dist/Store.module-NP6776GY.scss +240 -0
- package/dist/Subscribe.module-NVGQ57RA.scss +219 -0
- package/dist/Thread.module-QAJI6KOQ.scss +111 -0
- package/dist/Threads.module-J54DFQQZ.scss +105 -0
- package/dist/Users.module-ZRHCY63D.scss +98 -0
- package/dist/Version.module-MLMD7GW5.scss +22 -0
- package/dist/Weather.module-NT6XFKA7.scss +31 -0
- package/dist/Why.module-UVZJCJF7.scss +79 -0
- package/dist/index.d.mts +1408 -0
- package/dist/index.d.ts +1408 -0
- package/dist/index.js +44600 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +44575 -0
- package/dist/index.mjs.map +1 -0
- package/dist/react-tooltip.min-LLVNRY3Z.css +1 -0
- package/globals.css +91 -0
- package/globals.scss +585 -0
- package/icons/README.md +150 -0
- package/package.json +118 -0
- package/styles/view-transitions.css +207 -0
- package/toRem.scss +6 -0
- package/utils.module.scss +116 -0
- package/utils.scss +88 -0
package/README.md
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# 🍒 Chrry
|
|
2
|
+
|
|
3
|
+
**A modern, cross-platform UI library for React, React Native, and Next.js**
|
|
4
|
+
|
|
5
|
+
Built by the team behind [Vex](https://askvex.com) - the AI assistant that helps you get things done.
|
|
6
|
+
|
|
7
|
+
## ✨ Features
|
|
8
|
+
|
|
9
|
+
- 🎨 **Beautiful Components** - Modern, accessible UI components
|
|
10
|
+
- 📱 **Cross-Platform** - Works on Web, iOS, Android, and Browser Extensions
|
|
11
|
+
- 🎯 **TypeScript First** - Full type safety out of the box
|
|
12
|
+
- 🌙 **Dark Mode** - Built-in theme support
|
|
13
|
+
- 🌍 **i18n Ready** - Multi-language support included
|
|
14
|
+
- ⚡ **Performance** - Optimized for speed and bundle size
|
|
15
|
+
- 🎭 **Customizable** - Easy to theme and extend
|
|
16
|
+
|
|
17
|
+
## 🌶️ Pepper Router
|
|
18
|
+
|
|
19
|
+
Chrry pairs perfectly with **[Pepper Router](https://github.com/askvex/pepper)** - our universal router with view transitions:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install @askvex/pepper
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**Features:**
|
|
26
|
+
|
|
27
|
+
- ⚡ Zero-latency navigation
|
|
28
|
+
- 🎨 Built-in View Transitions API
|
|
29
|
+
- 📱 Works in web, React Native, and browser extensions
|
|
30
|
+
- 🚀 SSR-friendly
|
|
31
|
+
|
|
32
|
+
[Learn more →](https://npmjs.com/package/@askvex/pepper)
|
|
33
|
+
|
|
34
|
+
## 📦 Installation
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npm install @askvex/chrry
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Note:** Chrry is published as TypeScript source. Your bundler (Next.js, Vite, etc.) will compile it.
|
|
41
|
+
|
|
42
|
+
## 🚀 Quick Start
|
|
43
|
+
|
|
44
|
+
```tsx
|
|
45
|
+
import { Button, Modal, Chat } from "@askvex/chrry"
|
|
46
|
+
import { Star, Heart } from "@askvex/chrry/icons"
|
|
47
|
+
|
|
48
|
+
function App() {
|
|
49
|
+
return (
|
|
50
|
+
<div>
|
|
51
|
+
<Button>Click me</Button>
|
|
52
|
+
<Star size={24} />
|
|
53
|
+
</div>
|
|
54
|
+
)
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## 📚 Documentation
|
|
59
|
+
|
|
60
|
+
Visit [chrry.dev](https://chrry.dev) for full documentation, examples, and guides.
|
|
61
|
+
|
|
62
|
+
## 🛠️ Components
|
|
63
|
+
|
|
64
|
+
Chrry includes 50+ production-ready components:
|
|
65
|
+
|
|
66
|
+
- **Layout**: Sidebar, Menu, Modal, Skeleton
|
|
67
|
+
- **Forms**: Input, Select, Checkbox, Search
|
|
68
|
+
- **Data Display**: Message, Thread, Calendar, Weather
|
|
69
|
+
- **Feedback**: Loading, Toast, EmptyState
|
|
70
|
+
- **Navigation**: Breadcrumbs, Tabs, Pagination
|
|
71
|
+
- **And many more...**
|
|
72
|
+
|
|
73
|
+
## 🎨 Theming
|
|
74
|
+
|
|
75
|
+
Chrry supports custom themes and dark mode out of the box:
|
|
76
|
+
|
|
77
|
+
```tsx
|
|
78
|
+
import { ThemeProvider } from "@askvex/chrry/context/providers"
|
|
79
|
+
|
|
80
|
+
function App() {
|
|
81
|
+
return <ThemeProvider theme="dark">{/* Your app */}</ThemeProvider>
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## 🌍 Internationalization
|
|
86
|
+
|
|
87
|
+
Built-in support for multiple languages:
|
|
88
|
+
|
|
89
|
+
```tsx
|
|
90
|
+
import { locale } from "@askvex/chrry/locales"
|
|
91
|
+
|
|
92
|
+
// Supports: en, es, fr, de, ja, ko, nl, pt, tr, zh
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## 🤝 Contributing
|
|
96
|
+
|
|
97
|
+
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
|
|
98
|
+
|
|
99
|
+
## 📄 License
|
|
100
|
+
|
|
101
|
+
MIT © [AskVex](https://askvex.com)
|
|
102
|
+
|
|
103
|
+
## 🔗 Links
|
|
104
|
+
|
|
105
|
+
- [Website](https://chrry.dev)
|
|
106
|
+
- [Documentation](https://chrry.dev/docs)
|
|
107
|
+
- [GitHub](https://github.com/AskVex/chrry)
|
|
108
|
+
- [npm](https://www.npmjs.com/package/@askvex/chrry)
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
**Built with ❤️ by the Vex team**
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
@use "./toRem.scss";
|
|
2
|
+
|
|
3
|
+
.searchBoxWrapper {
|
|
4
|
+
width: 100%;
|
|
5
|
+
position: relative;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.searchIcon {
|
|
9
|
+
position: absolute;
|
|
10
|
+
left: toRem.toRem(12);
|
|
11
|
+
top: toRem.toRem(12);
|
|
12
|
+
color: var(--shade-6);
|
|
13
|
+
width: toRem.toRem(16);
|
|
14
|
+
height: toRem.toRem(16);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
input.search {
|
|
18
|
+
border: toRem.toRem(1) solid var(--shade-2);
|
|
19
|
+
border-radius: var(--radius);
|
|
20
|
+
padding: toRem.toRem(10) toRem.toRem(10) toRem.toRem(10) toRem.toRem(35) !important;
|
|
21
|
+
width: 100%;
|
|
22
|
+
background-color: var(--background);
|
|
23
|
+
color: var(--foreground);
|
|
24
|
+
font-size: toRem.toRem(16);
|
|
25
|
+
transition: var(--border-transition);
|
|
26
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
@use "./toRem.scss";
|
|
2
|
+
|
|
3
|
+
.customSelect {
|
|
4
|
+
position: relative;
|
|
5
|
+
display: inline-flex;
|
|
6
|
+
|
|
7
|
+
select {
|
|
8
|
+
appearance: none;
|
|
9
|
+
-webkit-appearance: none;
|
|
10
|
+
padding: 0.5rem 2.5rem 0.5rem 0.5rem;
|
|
11
|
+
border: toRem.toRem(1) dashed var(--accent-1);
|
|
12
|
+
border-radius: var(--radius);
|
|
13
|
+
background-color: var(--background);
|
|
14
|
+
color: var(--foreground);
|
|
15
|
+
transition: var(--border-transition);
|
|
16
|
+
cursor: pointer;
|
|
17
|
+
|
|
18
|
+
&:focus,
|
|
19
|
+
&:hover,
|
|
20
|
+
&:active {
|
|
21
|
+
border-color: var(--link-color);
|
|
22
|
+
outline: var(--link-color);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
.icon {
|
|
26
|
+
position: absolute;
|
|
27
|
+
right: toRem.toRem(10);
|
|
28
|
+
top: 50%;
|
|
29
|
+
transform: translateY(-50%);
|
|
30
|
+
pointer-events: none;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
@use "./toRem.scss";
|
|
2
|
+
|
|
3
|
+
.shareModalInputContainer,
|
|
4
|
+
.collaborateInputContainer {
|
|
5
|
+
display: flex;
|
|
6
|
+
gap: toRem.toRem(10);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.shareModalInput,
|
|
10
|
+
.collaborateInput {
|
|
11
|
+
flex: 1;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.collaborateFooter {
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: row;
|
|
17
|
+
align-items: center;
|
|
18
|
+
justify-content: flex-end;
|
|
19
|
+
gap: toRem.toRem(10);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.share {
|
|
23
|
+
font-size: toRem.toRem(12);
|
|
24
|
+
position: relative;
|
|
25
|
+
bottom: toRem.toRem(0.5);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.shareModalContent {
|
|
29
|
+
display: flex;
|
|
30
|
+
flex-direction: column;
|
|
31
|
+
gap: toRem.toRem(10);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.collaboratorEmail {
|
|
35
|
+
display: flex;
|
|
36
|
+
flex-direction: row;
|
|
37
|
+
align-items: center;
|
|
38
|
+
gap: toRem.toRem(15);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.shareModalDescription {
|
|
42
|
+
display: flex;
|
|
43
|
+
flex-direction: row;
|
|
44
|
+
align-items: center;
|
|
45
|
+
justify-content: flex-end;
|
|
46
|
+
gap: toRem.toRem(10);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.collaboratorStatus {
|
|
50
|
+
display: inline-flex;
|
|
51
|
+
flex-direction: row;
|
|
52
|
+
align-items: center;
|
|
53
|
+
gap: toRem.toRem(5);
|
|
54
|
+
svg {
|
|
55
|
+
position: relative;
|
|
56
|
+
top: toRem.toRem(1);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.collaborators {
|
|
61
|
+
display: flex;
|
|
62
|
+
flex-direction: column;
|
|
63
|
+
gap: toRem.toRem(10);
|
|
64
|
+
font-size: toRem.toRem(14);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.collaborator {
|
|
68
|
+
display: flex;
|
|
69
|
+
flex-direction: row;
|
|
70
|
+
align-items: flex-start;
|
|
71
|
+
gap: toRem.toRem(10);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.collaboratorImage {
|
|
75
|
+
border-radius: 50%;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.collaboratorName {
|
|
79
|
+
margin-top: 0;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.collaboratorActions {
|
|
83
|
+
margin-left: auto;
|
|
84
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
@use "./toRem.scss";
|
|
2
|
+
|
|
3
|
+
.sidebar {
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
height: 100vh;
|
|
7
|
+
padding: toRem.toRem(10);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.splash {
|
|
11
|
+
height: 100vh;
|
|
12
|
+
width: 100vw;
|
|
13
|
+
display: flex;
|
|
14
|
+
justify-content: center;
|
|
15
|
+
align-items: center;
|
|
16
|
+
position: fixed;
|
|
17
|
+
background: var(--background);
|
|
18
|
+
z-index: 999999;
|
|
19
|
+
|
|
20
|
+
&.hidden {
|
|
21
|
+
display: none;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.header {
|
|
26
|
+
display: flex;
|
|
27
|
+
align-items: center;
|
|
28
|
+
justify-content: space-between;
|
|
29
|
+
gap: toRem.toRem(5);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.content {
|
|
33
|
+
flex: 1;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.footer {
|
|
37
|
+
display: flex;
|
|
38
|
+
gap: toRem.toRem(5);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.brandContainer {
|
|
42
|
+
display: flex;
|
|
43
|
+
align-items: center;
|
|
44
|
+
gap: toRem.toRem(5);
|
|
45
|
+
|
|
46
|
+
.brand {
|
|
47
|
+
font-weight: bold;
|
|
48
|
+
font-size: toRem.toRem(15);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.menuButton {
|
|
53
|
+
display: flex;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.userButton {
|
|
57
|
+
display: flex;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.contentHelp {
|
|
61
|
+
font-size: toRem.toRem(26);
|
|
62
|
+
font-weight: bold;
|
|
63
|
+
margin: 0;
|
|
64
|
+
margin-top: toRem.toRem(40);
|
|
65
|
+
line-height: 1.2;
|
|
66
|
+
text-align: center;
|
|
67
|
+
align-self: center;
|
|
68
|
+
justify-self: center;
|
|
69
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
@use "./toRem.scss";
|
|
2
|
+
|
|
3
|
+
.container {
|
|
4
|
+
display: flex;
|
|
5
|
+
gap: toRem.toRem(10);
|
|
6
|
+
font-size: toRem.toRem(14);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.signInButton {
|
|
10
|
+
display: none;
|
|
11
|
+
|
|
12
|
+
@media (min-width: toRem.toRem(800)) {
|
|
13
|
+
display: flex;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.video {
|
|
18
|
+
width: toRem.toRem(30);
|
|
19
|
+
height: toRem.toRem(30);
|
|
20
|
+
object-fit: cover;
|
|
21
|
+
border-radius: 50%;
|
|
22
|
+
pointer-events: none; // So clicks pass through to foreground content
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.registerButton {
|
|
26
|
+
display: flex;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@keyframes slideLeft {
|
|
30
|
+
0% {
|
|
31
|
+
transform: translateX(100%);
|
|
32
|
+
opacity: 0;
|
|
33
|
+
}
|
|
34
|
+
100% {
|
|
35
|
+
transform: translateX(0);
|
|
36
|
+
opacity: 1;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.signInButtons {
|
|
41
|
+
display: flex;
|
|
42
|
+
flex-direction: column;
|
|
43
|
+
gap: toRem.toRem(10);
|
|
44
|
+
align-items: center;
|
|
45
|
+
justify-content: center;
|
|
46
|
+
text-align: center;
|
|
47
|
+
z-index: 1000;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.switchMode {
|
|
51
|
+
display: flex;
|
|
52
|
+
align-items: center;
|
|
53
|
+
flex-direction: row;
|
|
54
|
+
gap: toRem.toRem(5);
|
|
55
|
+
|
|
56
|
+
svg {
|
|
57
|
+
display: flex;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.googleButton {
|
|
62
|
+
gap: toRem.toRem(10);
|
|
63
|
+
border: none;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.modal {
|
|
67
|
+
height: 100vh;
|
|
68
|
+
width: 100vw;
|
|
69
|
+
display: flex;
|
|
70
|
+
top: 0;
|
|
71
|
+
left: 0;
|
|
72
|
+
flex-direction: column;
|
|
73
|
+
justify-content: center;
|
|
74
|
+
align-items: center;
|
|
75
|
+
z-index: 99999;
|
|
76
|
+
position: fixed;
|
|
77
|
+
background: var(--overlay);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.main {
|
|
81
|
+
margin: 0 auto;
|
|
82
|
+
width: auto;
|
|
83
|
+
padding: 0 toRem.toRem(10);
|
|
84
|
+
z-index: 3;
|
|
85
|
+
position: relative;
|
|
86
|
+
flex: 1;
|
|
87
|
+
flex-direction: column;
|
|
88
|
+
display: flex;
|
|
89
|
+
justify-content: center;
|
|
90
|
+
width: auto;
|
|
91
|
+
|
|
92
|
+
.inner {
|
|
93
|
+
animation: slideUp 0.4s ease forwards;
|
|
94
|
+
position: relative;
|
|
95
|
+
min-width: 100%;
|
|
96
|
+
display: flex;
|
|
97
|
+
flex-direction: row;
|
|
98
|
+
align-items: center;
|
|
99
|
+
justify-content: center;
|
|
100
|
+
align-items: center;
|
|
101
|
+
gap: toRem.toRem(20);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.appleButton,
|
|
105
|
+
.googleButton {
|
|
106
|
+
display: flex;
|
|
107
|
+
align-items: center;
|
|
108
|
+
gap: toRem.toRem(5);
|
|
109
|
+
border-radius: 13px;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.close {
|
|
113
|
+
display: flex;
|
|
114
|
+
position: absolute;
|
|
115
|
+
top: toRem.toRem(-40);
|
|
116
|
+
border: none;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
@keyframes slideUp {
|
|
121
|
+
from {
|
|
122
|
+
opacity: 0;
|
|
123
|
+
transform: translateY(toRem.toRem(20)); /* Start slightly below */
|
|
124
|
+
}
|
|
125
|
+
to {
|
|
126
|
+
opacity: 1;
|
|
127
|
+
transform: translateY(0); /* End at original position */
|
|
128
|
+
}
|
|
129
|
+
}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
@use "./breakpoints.scss";
|
|
2
|
+
@use "./toRem.scss";
|
|
3
|
+
@use "./utils.scss";
|
|
4
|
+
|
|
5
|
+
.page {
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-direction: row;
|
|
8
|
+
// min-height: 100vh;
|
|
9
|
+
padding-left: 0;
|
|
10
|
+
align-items: flex-start;
|
|
11
|
+
position: relative;
|
|
12
|
+
|
|
13
|
+
@media (min-width: breakpoints.$breakpoint-mobile) {
|
|
14
|
+
padding-left: 0;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@media print {
|
|
18
|
+
padding-top: 0;
|
|
19
|
+
padding-left: 0;
|
|
20
|
+
min-height: auto;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.subscribe {
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@media (min-width: breakpoints.$breakpoint-desktop) {
|
|
27
|
+
&.drawerOpen {
|
|
28
|
+
padding-left: toRem.toRem(255);
|
|
29
|
+
|
|
30
|
+
.brand {
|
|
31
|
+
left: 0;
|
|
32
|
+
font-size: toRem.toRem(18);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.subscribe {
|
|
36
|
+
left: 0;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.blog {
|
|
43
|
+
display: none;
|
|
44
|
+
|
|
45
|
+
@media (min-width: breakpoints.$breakpoint-mobile) {
|
|
46
|
+
display: inline-flex;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.right {
|
|
51
|
+
display: flex;
|
|
52
|
+
align-items: center;
|
|
53
|
+
gap: toRem.toRem(12.5);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.middle {
|
|
57
|
+
display: flex;
|
|
58
|
+
align-items: center;
|
|
59
|
+
justify-content: center;
|
|
60
|
+
gap: toRem.toRem(10);
|
|
61
|
+
svg {
|
|
62
|
+
display: flex;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
&.isDrawerOpen {
|
|
66
|
+
position: relative;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
display: none;
|
|
70
|
+
|
|
71
|
+
&.desktop {
|
|
72
|
+
@media (min-width: breakpoints.$breakpoint-mobile) {
|
|
73
|
+
display: flex;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
&.mobile {
|
|
78
|
+
position: relative;
|
|
79
|
+
margin-bottom: toRem.toRem(10);
|
|
80
|
+
@media (max-width: breakpoints.$breakpoint-mobile) {
|
|
81
|
+
display: flex;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.subscribeMobileWrapper {
|
|
87
|
+
display: flex;
|
|
88
|
+
align-items: center;
|
|
89
|
+
justify-content: center;
|
|
90
|
+
gap: toRem.toRem(10);
|
|
91
|
+
|
|
92
|
+
@media (min-width: breakpoints.$breakpoint-mobile) {
|
|
93
|
+
display: none;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.title {
|
|
98
|
+
font-size: toRem.toRem(22.1);
|
|
99
|
+
|
|
100
|
+
@media (min-width: breakpoints.$breakpoint-mobile) {
|
|
101
|
+
font-size: toRem.toRem(26.1);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.loadingContainer {
|
|
106
|
+
display: flex;
|
|
107
|
+
justify-content: center;
|
|
108
|
+
align-items: center;
|
|
109
|
+
flex: 1;
|
|
110
|
+
position: relative;
|
|
111
|
+
bottom: toRem.toRem(50);
|
|
112
|
+
height: 100dvh;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.main {
|
|
116
|
+
padding: toRem.toRem(10);
|
|
117
|
+
padding-top: toRem.toRem(50);
|
|
118
|
+
display: flex;
|
|
119
|
+
flex-direction: column;
|
|
120
|
+
flex: 1;
|
|
121
|
+
height: 100dvh;
|
|
122
|
+
&.empty {
|
|
123
|
+
padding-top: 0;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.contentContainer {
|
|
128
|
+
display: flex;
|
|
129
|
+
flex-direction: column;
|
|
130
|
+
flex: 1;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.brand {
|
|
134
|
+
font-weight: bold;
|
|
135
|
+
margin: 0;
|
|
136
|
+
font-size: toRem.toRem(18);
|
|
137
|
+
position: relative;
|
|
138
|
+
line-height: 1;
|
|
139
|
+
color: var(--shade-7);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.subscribe,
|
|
143
|
+
.signIn {
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.signIn {
|
|
147
|
+
display: none !important;
|
|
148
|
+
|
|
149
|
+
@media (min-width: breakpoints.$breakpoint-mobile) {
|
|
150
|
+
display: flex !important;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.hamburgerMenu {
|
|
155
|
+
display: flex;
|
|
156
|
+
align-items: center;
|
|
157
|
+
gap: toRem.toRem(12.5);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.brandHelp {
|
|
161
|
+
text-align: center;
|
|
162
|
+
font-size: toRem.toRem(18);
|
|
163
|
+
line-height: 1.2;
|
|
164
|
+
|
|
165
|
+
@media (min-width: breakpoints.$breakpoint-mobile) {
|
|
166
|
+
font-size: toRem.toRem(24);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.footer {
|
|
171
|
+
width: 100%;
|
|
172
|
+
|
|
173
|
+
@media (min-width: breakpoints.$breakpoint-mobile) {
|
|
174
|
+
max-width: breakpoints.$breakpoint-mobile;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.hamburgerButton {
|
|
179
|
+
position: relative;
|
|
180
|
+
|
|
181
|
+
.notification {
|
|
182
|
+
position: absolute;
|
|
183
|
+
top: 0;
|
|
184
|
+
right: 0;
|
|
185
|
+
width: toRem.toRem(10);
|
|
186
|
+
height: toRem.toRem(10);
|
|
187
|
+
border-radius: 50%;
|
|
188
|
+
background-color: var(--accent-1);
|
|
189
|
+
display: flex;
|
|
190
|
+
align-items: center;
|
|
191
|
+
justify-content: center;
|
|
192
|
+
font-size: toRem.toRem(12);
|
|
193
|
+
color: var(--background);
|
|
194
|
+
box-shadow: var(--shadow);
|
|
195
|
+
animation: pulse 1s ease-in-out;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.header {
|
|
200
|
+
display: flex;
|
|
201
|
+
justify-content: space-between;
|
|
202
|
+
align-items: center;
|
|
203
|
+
position: fixed;
|
|
204
|
+
top: 0;
|
|
205
|
+
right: 0;
|
|
206
|
+
padding: toRem.toRem(10) toRem.toRem(10);
|
|
207
|
+
|
|
208
|
+
width: calc(100%);
|
|
209
|
+
z-index: 1000;
|
|
210
|
+
background-color: var(--background-transparent);
|
|
211
|
+
backdrop-filter: blur(toRem.toRem(2.5));
|
|
212
|
+
|
|
213
|
+
@media all and (display-mode: standalone) {
|
|
214
|
+
background-color: var(--background);
|
|
215
|
+
backdrop-filter: none;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
&.standalone {
|
|
219
|
+
background-color: var(--background);
|
|
220
|
+
backdrop-filter: none;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
@media print {
|
|
224
|
+
display: none !important;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
&.empty {
|
|
228
|
+
position: static;
|
|
229
|
+
margin: 0;
|
|
230
|
+
padding: toRem.toRem(10) 0;
|
|
231
|
+
}
|
|
232
|
+
}
|