solara-ui 1.39.0__py2.py3-none-any.whl → 1.40.0__py2.py3-none-any.whl
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.
- solara/__init__.py +1 -1
- solara/components/__init__.py +1 -0
- solara/components/input_text_area.py +86 -0
- solara/components/markdown.py +1 -1
- solara/hooks/use_thread.py +4 -4
- solara/lab/components/chat.py +8 -2
- solara/server/assets/style.css +2 -1
- solara/server/flask.py +1 -1
- solara/server/jupyter/server_extension.py +11 -1
- solara/server/jupyter/solara.py +91 -0
- solara/server/patch.py +1 -0
- solara/server/pyinstaller/__init__.py +9 -0
- solara/server/pyinstaller/hook-ipyreact.py +5 -0
- solara/server/pyinstaller/hook-ipyvuetify.py +5 -0
- solara/server/pyinstaller/hook-solara.py +9 -0
- solara/server/server.py +6 -1
- solara/server/starlette.py +18 -6
- solara/server/static/highlight-dark.css +1 -1
- solara/server/static/main-vuetify.js +1 -1
- solara/server/static/solara_bootstrap.py +1 -1
- solara/server/templates/solara.html.j2 +30 -6
- solara/website/assets/custom.css +20 -57
- solara/website/components/__init__.py +2 -2
- solara/website/components/algolia_api.vue +23 -6
- solara/website/components/breadcrumbs.py +28 -0
- solara/website/components/contact.py +144 -0
- solara/website/components/docs.py +11 -9
- solara/website/components/header.py +31 -20
- solara/website/components/markdown.py +12 -1
- solara/website/components/markdown_nav.vue +34 -0
- solara/website/components/sidebar.py +7 -1
- solara/website/pages/__init__.py +87 -254
- solara/website/pages/about/__init__.py +9 -0
- solara/website/pages/about/about.md +3 -0
- solara/website/pages/careers/__init__.py +27 -0
- solara/website/pages/changelog/__init__.py +2 -2
- solara/website/pages/changelog/changelog.md +12 -0
- solara/website/pages/contact/__init__.py +30 -6
- solara/website/pages/documentation/__init__.py +25 -33
- solara/website/pages/documentation/advanced/content/10-howto/40-embed.md +2 -1
- solara/website/pages/documentation/advanced/content/15-reference/41-asset-files.md +1 -1
- solara/website/pages/documentation/advanced/content/20-understanding/50-solara-server.md +2 -1
- solara/website/pages/documentation/advanced/content/30-enterprise/00-overview.md +1 -1
- solara/website/pages/documentation/advanced/content/30-enterprise/10-oauth.md +5 -2
- solara/website/pages/documentation/api/hooks/use_thread.md +6 -0
- solara/website/pages/documentation/components/data/pivot_table.py +2 -2
- solara/website/pages/documentation/components/input/input.py +2 -0
- solara/website/pages/documentation/components/output/sql_code.py +3 -3
- solara/website/pages/documentation/examples/__init__.py +2 -2
- solara/website/pages/documentation/getting_started/content/04-tutorials/_jupyter_dashboard_1.ipynb +2 -2
- solara/website/pages/documentation/getting_started/content/05-fundamentals/10-components.md +19 -14
- solara/website/pages/documentation/getting_started/content/05-fundamentals/50-state-management.md +205 -15
- solara/website/pages/documentation/getting_started/content/07-deploying/10-self-hosted.md +3 -1
- solara/website/pages/home.vue +1199 -0
- solara/website/pages/our_team/__init__.py +83 -0
- solara/website/pages/pricing/__init__.py +31 -0
- solara/website/pages/roadmap/__init__.py +11 -0
- solara/website/pages/roadmap/roadmap.md +41 -0
- solara/website/pages/scale_ipywidgets.py +45 -0
- {solara_ui-1.39.0.dist-info → solara_ui-1.40.0.dist-info}/METADATA +2 -2
- {solara_ui-1.39.0.dist-info → solara_ui-1.40.0.dist-info}/RECORD +65 -49
- solara/website/components/hero.py +0 -15
- solara/website/pages/contact/contact.md +0 -17
- {solara_ui-1.39.0.data → solara_ui-1.40.0.data}/data/etc/jupyter/jupyter_notebook_config.d/solara.json +0 -0
- {solara_ui-1.39.0.data → solara_ui-1.40.0.data}/data/etc/jupyter/jupyter_server_config.d/solara.json +0 -0
- {solara_ui-1.39.0.dist-info → solara_ui-1.40.0.dist-info}/WHEEL +0 -0
- {solara_ui-1.39.0.dist-info → solara_ui-1.40.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,1199 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<main>
|
|
3
|
+
<section id="hero">
|
|
4
|
+
<nav class="hero-nav"
|
|
5
|
+
style="position: absolute; top: 0; width: 100%; height: 3.5rem; font-size: 1.25rem; display: flex; flex-direction: row; justify-content: flex-end; align-items: center; padding: 0 30px; gap: 30px; box-sizing: border-box;">
|
|
6
|
+
<a href="/documentation">
|
|
7
|
+
Documentation
|
|
8
|
+
</a>
|
|
9
|
+
<a href="/showcase">
|
|
10
|
+
Showcase
|
|
11
|
+
</a>
|
|
12
|
+
</nav>
|
|
13
|
+
<div class="hero-stars"></div>
|
|
14
|
+
<div class="hero-planet-element solara-ssg-wait-for-animation"></div>
|
|
15
|
+
<div class="in-hero-banner">
|
|
16
|
+
<a href="/scale_ipywidgets">Scale your ipywidgets prototype into a high-quality web app with our expert help. Contact us now.</a>
|
|
17
|
+
</div>
|
|
18
|
+
<h1>Build high-quality web applications in pure Python</h1>
|
|
19
|
+
<h2>
|
|
20
|
+
From dashboards to large applications: Solara delivers solid, maintainable code trusted by
|
|
21
|
+
startups & large enterprises.
|
|
22
|
+
</h2>
|
|
23
|
+
</section>
|
|
24
|
+
<section id="brand-trust">
|
|
25
|
+
<h3>
|
|
26
|
+
For performance, efficiency and developer experience.
|
|
27
|
+
</h3>
|
|
28
|
+
<h4>
|
|
29
|
+
Solara is trusted by the most innovative teams.
|
|
30
|
+
</h4>
|
|
31
|
+
<div class="logo-grid">
|
|
32
|
+
<a href="https://www.dominodatalab.com/" target="_blank">
|
|
33
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/logos/domino.png" alt="Domino Data Lab"
|
|
34
|
+
width="80%" />
|
|
35
|
+
</a>
|
|
36
|
+
<a href="https://www.stsci.edu/home" target="_blank">
|
|
37
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/logos/stsci.png"
|
|
38
|
+
alt="Space Telescope Science Institute" width="50%" />
|
|
39
|
+
</a>
|
|
40
|
+
<a href="https://www.gluesolutions.io/home" target="_blank">
|
|
41
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/logos/glue-solutions-white.png"
|
|
42
|
+
alt="Glue Solutions, Inc." width="50%" />
|
|
43
|
+
</a>
|
|
44
|
+
<a href="https://planeto-energy.ch/" target="_blank">
|
|
45
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/logos/planeto.png" alt="Planeto Energy"
|
|
46
|
+
width="80%" />
|
|
47
|
+
</a>
|
|
48
|
+
</div>
|
|
49
|
+
</section>
|
|
50
|
+
<section id="modern">
|
|
51
|
+
<h1>Made for modern applications</h1>
|
|
52
|
+
<h4>
|
|
53
|
+
A powerful framework for building high-performance web applications without front-end fuss.
|
|
54
|
+
</h4>
|
|
55
|
+
<div class="modern-element-container card" style="flex-direction: column;">
|
|
56
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/lazy-deco-stroke.svg" class="lazy-stroke"
|
|
57
|
+
width="80%" />
|
|
58
|
+
<h3>
|
|
59
|
+
Build high-quality web applications without front-end experience.
|
|
60
|
+
</h3>
|
|
61
|
+
</div>
|
|
62
|
+
<div class="double-tile-container homepage-row">
|
|
63
|
+
<div class="modern-tile card">
|
|
64
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/solara-card-stack.png" alt="Solara stack"
|
|
65
|
+
width="100%" />
|
|
66
|
+
<div class="stack-text-container">
|
|
67
|
+
<h2>Brings your application to production</h2>
|
|
68
|
+
<p>
|
|
69
|
+
Built on a foundation of fast, production-grade tooling. Whether you develop in a Jupyter
|
|
70
|
+
Notebook
|
|
71
|
+
or an editor like VScode, Solara brings your application to production.
|
|
72
|
+
</p>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
<div class="modern-tile card">
|
|
76
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/solara-flow-stack.png" alt="Solara stack"
|
|
77
|
+
width="80%" />
|
|
78
|
+
<div class="stack-text-container">
|
|
79
|
+
<h2>Modern API stack supported</h2>
|
|
80
|
+
<p>
|
|
81
|
+
Call libraries directly from Python without having to create REST endpoints.
|
|
82
|
+
</p>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
</div>
|
|
86
|
+
</section>
|
|
87
|
+
<section id="features">
|
|
88
|
+
<h1>Every feature you need to build great applications on the web.</h1>
|
|
89
|
+
<h4>Build large applications without exponential complexity.</h4>
|
|
90
|
+
<div class="triple-tile-container homepage-row">
|
|
91
|
+
<div class="feature card">
|
|
92
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/auto-updates.svg" alt="Automatic updates"
|
|
93
|
+
width="100%" />
|
|
94
|
+
<div class="stack-text-container">
|
|
95
|
+
<h2>Fully Automatic Updates</h2>
|
|
96
|
+
<p>
|
|
97
|
+
Write your reactive components declaratively and never worry about updating UI, Solara does this
|
|
98
|
+
automatically, just like a spreadsheet.
|
|
99
|
+
</p>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
<div class="feature card">
|
|
103
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/many-components.svg" alt="Component library"
|
|
104
|
+
width="100%" />
|
|
105
|
+
<div class="stack-text-container">
|
|
106
|
+
<h2>Comprehensive Component Library</h2>
|
|
107
|
+
<p>
|
|
108
|
+
Building diverse applications with built-in components; or tailored them to your organization,
|
|
109
|
+
all within Python.
|
|
110
|
+
</p>
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
<div class="feature card double-height">
|
|
114
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/type-safety.svg" alt="Real-time"
|
|
115
|
+
width="80%" />
|
|
116
|
+
<div class="stack-text-container">
|
|
117
|
+
<h2>Type Safety</h2>
|
|
118
|
+
<p>
|
|
119
|
+
With Python’s optional typing, type fast and error-free. Spot and fix typing errors directly
|
|
120
|
+
throughout Solara, from state management to UI components.
|
|
121
|
+
</p>
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
124
|
+
<div class="feature card">
|
|
125
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/auto-testing.svg" alt="Automated testing"
|
|
126
|
+
width="100%" />
|
|
127
|
+
<div class="stack-text-container">
|
|
128
|
+
<h2>Fully Testable</h2>
|
|
129
|
+
<p>
|
|
130
|
+
Test your applications with and without a browser, from unit tests to end-to-end tests,
|
|
131
|
+
preferably automated in a CI/CD pipeline. Spot bugs before they hit the user and release with
|
|
132
|
+
confidence.
|
|
133
|
+
</p>
|
|
134
|
+
</div>
|
|
135
|
+
</div>
|
|
136
|
+
<div class="feature card">
|
|
137
|
+
<div class="stack-text-container">
|
|
138
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/many-frameworks.svg"
|
|
139
|
+
alt="Framework support" width="100%" />
|
|
140
|
+
<h2>Compatible with any framework</h2>
|
|
141
|
+
<p>
|
|
142
|
+
Ipywidgets, React, Vue, and more - it runs on Solara. Outside Solara’s built-in components
|
|
143
|
+
within Python, create new frontend components with any framework.
|
|
144
|
+
</p>
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
</div>
|
|
148
|
+
</section>
|
|
149
|
+
<section id="choice">
|
|
150
|
+
<h1>The Framework of Choice when it Matters</h1>
|
|
151
|
+
<h4>
|
|
152
|
+
Your team’s toolkit to stop configuring and start innovating. Securely build, deploy, and scale the best web
|
|
153
|
+
experiences with Solara.
|
|
154
|
+
</h4>
|
|
155
|
+
<div class="full-width-slideshow-container">
|
|
156
|
+
<div class="slideshow-column">
|
|
157
|
+
<div class="piece" style="flex-grow: 1;">
|
|
158
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/public/showcase/wanderlust/thumbnail.png"
|
|
159
|
+
alt="Wanderlust app" />
|
|
160
|
+
</div>
|
|
161
|
+
<div class="piece" style="flex-grow: 1;">
|
|
162
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/backgrounds/instagibbs.png"
|
|
163
|
+
alt="Instagibbs" />
|
|
164
|
+
</div>
|
|
165
|
+
</div>
|
|
166
|
+
<div class="slideshow-column">
|
|
167
|
+
<div class="piece" style="flex-grow: 1;">
|
|
168
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/backgrounds/video-analysis.png"
|
|
169
|
+
alt="Video analysis" />
|
|
170
|
+
</div>
|
|
171
|
+
</div>
|
|
172
|
+
<div class="slideshow-column">
|
|
173
|
+
<div class="piece" style="flex-grow: 3;">
|
|
174
|
+
<img src="https://user-images.githubusercontent.com/1765949/237517090-8f7242b1-3189-4c5b-abd3-0f0986292ade.png"
|
|
175
|
+
alt="Bulk Labeling" />
|
|
176
|
+
</div>
|
|
177
|
+
<div class="slideshow-row" style="flex-grow: 2; height: 0;">
|
|
178
|
+
<div class="piece" style="flex-grow: 1; height: 100%;">
|
|
179
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/public/showcase/solarathon_2023_team_4/thumbnail.png"
|
|
180
|
+
alt="Live Cryptocurrency Dashboard" />
|
|
181
|
+
</div>
|
|
182
|
+
<div class="piece" style="flex-grow: 1; height: 100%;">
|
|
183
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/public/showcase/solarathon_2023_team_2/thumbnail.png"
|
|
184
|
+
alt="Travel Assistant" />
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
</div>
|
|
188
|
+
<div class="slideshow-column">
|
|
189
|
+
<div class="piece" style="flex-grow: 1;">
|
|
190
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/backgrounds/tessa-analysis1.png"
|
|
191
|
+
alt="District Heating Calculation" />
|
|
192
|
+
</div>
|
|
193
|
+
<div class="piece" style="flex-grow: 1;">
|
|
194
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/backgrounds/tessa-analysis2.png"
|
|
195
|
+
alt="District Heating Calculation" />
|
|
196
|
+
</div>
|
|
197
|
+
</div>
|
|
198
|
+
<div class="bottom-fade"></div>
|
|
199
|
+
</div>
|
|
200
|
+
</section>
|
|
201
|
+
<section id="cutting-edge">
|
|
202
|
+
<h1>The Home of Cutting-Edge Apps</h1>
|
|
203
|
+
<h4>
|
|
204
|
+
Solara powers you with the full strength of both the Python and Javascript ecosystems.
|
|
205
|
+
</h4>
|
|
206
|
+
<a href="/showcase">
|
|
207
|
+
<button class="cta">See the showcase</button>
|
|
208
|
+
</a>
|
|
209
|
+
<div class="testimonials">
|
|
210
|
+
<div class="testimonial card-flat">
|
|
211
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/logos/flojoy.svg" alt="Flojoy"
|
|
212
|
+
style="filter: grayscale(1) contrast(0.4)" height="60px" />
|
|
213
|
+
<p>
|
|
214
|
+
Solara is like streamlit, but for Jupyter. I am really excited to see where this goes!
|
|
215
|
+
</p>
|
|
216
|
+
<div class="testimonial-attribution">
|
|
217
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/public/avatar/jack-parmer.jpg" alt="Jack Parmer" />
|
|
218
|
+
<div style="flex-grow: 1; display: flex; flex-direction: column; justify-content: center;">
|
|
219
|
+
<h4>Jack Parmer</h4>
|
|
220
|
+
<p>Former CEO of Plotly, CEO of Flojoy</p>
|
|
221
|
+
</div>
|
|
222
|
+
</div>
|
|
223
|
+
</div>
|
|
224
|
+
<div class="testimonial card-flat">
|
|
225
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/logos/planeto.png" alt="Planeto"
|
|
226
|
+
height="60px" />
|
|
227
|
+
<p>
|
|
228
|
+
We evolved our prototype using Solara and are running it in production without needing an expensive
|
|
229
|
+
rewrite with separate frontend and backend developers.
|
|
230
|
+
</p>
|
|
231
|
+
<div class="testimonial-attribution">
|
|
232
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/public/avatar/jonathan-chambers.jpg"
|
|
233
|
+
alt="Jonathan Chambers" />
|
|
234
|
+
<div style="flex-grow: 1; display: flex; flex-direction: column; justify-content: center;">
|
|
235
|
+
<h4>Jonathan Chambers</h4>
|
|
236
|
+
<p>Co-Founder, Planeto Energy</p>
|
|
237
|
+
</div>
|
|
238
|
+
</div>
|
|
239
|
+
</div>
|
|
240
|
+
<div class="testimonial card-flat">
|
|
241
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/logos/domino.png" alt="Domino Data Lab"
|
|
242
|
+
height="60px" />
|
|
243
|
+
<p>
|
|
244
|
+
Solara has been transformative, allowing us to rapidly create a Jupyter app and iterate with
|
|
245
|
+
impressive speed.
|
|
246
|
+
</p>
|
|
247
|
+
<div class="testimonial-attribution">
|
|
248
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/public/avatar/nick-elprin.jpg" alt="Nick Elprin" />
|
|
249
|
+
<div style="flex-grow: 1; display: flex; flex-direction: column; justify-content: center;">
|
|
250
|
+
<h4>Nick Elprin</h4>
|
|
251
|
+
<p>Co-Founder and CEO, Domino Data Lab</p>
|
|
252
|
+
</div>
|
|
253
|
+
</div>
|
|
254
|
+
</div>
|
|
255
|
+
</div>
|
|
256
|
+
</section>
|
|
257
|
+
<section id="learning"
|
|
258
|
+
style="background: radial-gradient(61.25% 47.84% at 50% 0%, rgba(255, 164, 61, 0.06) 0%, rgba(255, 164, 61, 0.00) 100%), radial-gradient(15.33% 28.37% at 50% 42.67%, rgba(255, 164, 61, 0.20) 0%, rgba(255, 164, 61, 0.00) 100%);">
|
|
259
|
+
<div class="top-part">
|
|
260
|
+
<h1>Continue Your Learning Journey</h1>
|
|
261
|
+
<h4>Check out Solara Documentation or subscribe to our newsletter</h4>
|
|
262
|
+
<div id="mc_embed_shell">
|
|
263
|
+
<div id="mc_embed_signup">
|
|
264
|
+
<form
|
|
265
|
+
action="https://gmail.us13.list-manage.com/subscribe/post?u=1dcdd74de47214edace5b6f49&id=c60b5def86&f_id=00f4c1e2f0"
|
|
266
|
+
method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate"
|
|
267
|
+
target="_blank"
|
|
268
|
+
style="padding: 12px 18px; border-radius: 999px; background: rgba(255, 255, 255, 0.04); backdrop-filter: blur(2px);">
|
|
269
|
+
<div id="mc_embed_signup_scroll" style="flex-grow: 1;">
|
|
270
|
+
<div class="mc-field-group">
|
|
271
|
+
<input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required=""
|
|
272
|
+
value="" placeholder="Enter Your Email">
|
|
273
|
+
</div>
|
|
274
|
+
<div class="mc-field-group" style="visibility: hidden; display: none;">
|
|
275
|
+
<label for="mce-LOCATION">signup location </label>
|
|
276
|
+
<input type="text" name="LOCATION" class=" text" id="mce-LOCATION" value="/">
|
|
277
|
+
</div>
|
|
278
|
+
<div id="mce-responses" class="clear foot">
|
|
279
|
+
<div class="response" id="mce-error-response" style="display: none;"></div>
|
|
280
|
+
<div class="response" id="mce-success-response" style="display: none;"></div>
|
|
281
|
+
</div>
|
|
282
|
+
<div aria-hidden="true" style="position: absolute; left: -5000px;">
|
|
283
|
+
/* real people should not fill this in and expect good things - do not remove this
|
|
284
|
+
or
|
|
285
|
+
risk
|
|
286
|
+
form bot
|
|
287
|
+
signups */
|
|
288
|
+
<input type="text" name="b_1dcdd74de47214edace5b6f49_c60b5def86" tabindex="-1" value="">
|
|
289
|
+
</div>
|
|
290
|
+
</div>
|
|
291
|
+
<button type="submit" name="subscribe" id="mc-embedded-subscribe"
|
|
292
|
+
value="Subscribe">Subscribe</button>
|
|
293
|
+
</form>
|
|
294
|
+
</div>
|
|
295
|
+
</div>
|
|
296
|
+
</div>
|
|
297
|
+
<div class="bottom-part">
|
|
298
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/mobile-desktop-docs-preview.png"
|
|
299
|
+
alt="A preview of Solara on Different Devices" width="70%" />
|
|
300
|
+
<div class="bottom-fade"></div>
|
|
301
|
+
</div>
|
|
302
|
+
</section>
|
|
303
|
+
<section id="deploy">
|
|
304
|
+
<div class="card deploy-card">
|
|
305
|
+
<div class="deploy-card-top-text">
|
|
306
|
+
<h2>Get Started in Seconds</h2>
|
|
307
|
+
<p>
|
|
308
|
+
To deploy a new Project, install Solara as a normal Python package or get started with the server
|
|
309
|
+
from
|
|
310
|
+
the command line.
|
|
311
|
+
</p>
|
|
312
|
+
<a href="/documentation/getting_started">
|
|
313
|
+
Install Now >
|
|
314
|
+
</a>
|
|
315
|
+
</div>
|
|
316
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/backgrounds/what-ship.svg"
|
|
317
|
+
alt="What Will You Ship" width="100%" />
|
|
318
|
+
</div>
|
|
319
|
+
<div class="card deploy-card" style="position: relative; overflow: hidden;">
|
|
320
|
+
<div class="deploy-card-top-text">
|
|
321
|
+
<h2>Get Support Wherever You Are</h2>
|
|
322
|
+
<p>
|
|
323
|
+
We serve developers all across the globe. If you need professional support or consulting, contact us
|
|
324
|
+
through Widgetti, our parent company.
|
|
325
|
+
</p>
|
|
326
|
+
<a href="/contact">
|
|
327
|
+
Contact Us >
|
|
328
|
+
</a>
|
|
329
|
+
</div>
|
|
330
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/backgrounds/globe.svg"
|
|
331
|
+
alt="Support Wherever You Are" width="100%" style="position: absolute; bottom: 0; right: 0;" />
|
|
332
|
+
</div>
|
|
333
|
+
</section>
|
|
334
|
+
<section id="ready">
|
|
335
|
+
<h1>Ready to Deploy?</h1>
|
|
336
|
+
<h4>Celebrate the joy of accomplishment with a tool designed to build your app and scale your business.</h4>
|
|
337
|
+
<a href="documentation/getting_started">
|
|
338
|
+
Get Started
|
|
339
|
+
</a>
|
|
340
|
+
<div class="bottom-planet-container">
|
|
341
|
+
<div class="left-fade"></div>
|
|
342
|
+
<div class="right-fade"></div>
|
|
343
|
+
<div class="bottom-fade"></div>
|
|
344
|
+
<div class="bottom-planet-element"></div>
|
|
345
|
+
</div>
|
|
346
|
+
</section>
|
|
347
|
+
<footer>
|
|
348
|
+
<div class="footer-flex homepage-row">
|
|
349
|
+
<div class="footer-flex homepage-column">
|
|
350
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/logos/solara.svg" alt="Solara" width="100px"
|
|
351
|
+
class="logo" />
|
|
352
|
+
<div class="footer-flex homepage-column">
|
|
353
|
+
<a href="https://discord.solara.dev" class="ext-link">
|
|
354
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/logos/discord.svg" alt="Discord"
|
|
355
|
+
width="20px" style="margin-right: 0.75rem;" />
|
|
356
|
+
Discord
|
|
357
|
+
</a>
|
|
358
|
+
<a href="https://github.com/widgetti/solara" class="ext-link">
|
|
359
|
+
<img src="https://dxhl76zpt6fap.cloudfront.net/new-homepage/logos/github.svg" alt="GitHub"
|
|
360
|
+
width="20px" style="margin-right: 0.75rem;" />
|
|
361
|
+
GitHub
|
|
362
|
+
</a>
|
|
363
|
+
</div>
|
|
364
|
+
</div>
|
|
365
|
+
<div class="footer-flex homepage-row" style="width: 40%; padding-right: 60px;">
|
|
366
|
+
<div class="footer-flex homepage-column">
|
|
367
|
+
<b>Resources</b>
|
|
368
|
+
<a href="/pricing">
|
|
369
|
+
Pricing
|
|
370
|
+
</a>
|
|
371
|
+
<a href="/changelog">
|
|
372
|
+
Changelog
|
|
373
|
+
</a>
|
|
374
|
+
<a href="/roadmap">
|
|
375
|
+
Roadmap
|
|
376
|
+
</a>
|
|
377
|
+
</div>
|
|
378
|
+
<div class="footer-flex homepage-column">
|
|
379
|
+
<b>Company</b>
|
|
380
|
+
<a href="/about">
|
|
381
|
+
About
|
|
382
|
+
</a>
|
|
383
|
+
<a href="/our_team">
|
|
384
|
+
Our Team
|
|
385
|
+
</a>
|
|
386
|
+
<a href="/careers">
|
|
387
|
+
Careers
|
|
388
|
+
</a>
|
|
389
|
+
</div>
|
|
390
|
+
<div class="footer-flex homepage-column">
|
|
391
|
+
<b>Resources</b>
|
|
392
|
+
<a href="/documentation">
|
|
393
|
+
Documentation
|
|
394
|
+
</a>
|
|
395
|
+
<a href="/showcase">
|
|
396
|
+
Showcase
|
|
397
|
+
</a>
|
|
398
|
+
<a href="/contact">
|
|
399
|
+
Contact
|
|
400
|
+
</a>
|
|
401
|
+
</div>
|
|
402
|
+
</div>
|
|
403
|
+
</div>
|
|
404
|
+
<div class="footer-flex homepage-row" style="align-items: center;">
|
|
405
|
+
<div>
|
|
406
|
+
<h2 style="max-width: unset;">Join our Developer Newsletter</h2>
|
|
407
|
+
<h4 style="max-width: unset;">Keep up to date with everything Solara, no BS.</h4>
|
|
408
|
+
</div>
|
|
409
|
+
<div id="mc_embed_shell">
|
|
410
|
+
<div id="mc_embed_signup">
|
|
411
|
+
<form
|
|
412
|
+
action="https://gmail.us13.list-manage.com/subscribe/post?u=1dcdd74de47214edace5b6f49&id=c60b5def86&f_id=00f4c1e2f0"
|
|
413
|
+
method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate"
|
|
414
|
+
target="_blank">
|
|
415
|
+
<div id="mc_embed_signup_scroll" style="flex-grow: 1;">
|
|
416
|
+
<div class="mc-field-group">
|
|
417
|
+
<input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required=""
|
|
418
|
+
value="" placeholder="Enter Your Email">
|
|
419
|
+
</div>
|
|
420
|
+
<div class="mc-field-group" style="visibility: hidden; display: none;">
|
|
421
|
+
<label for="mce-LOCATION">signup location </label>
|
|
422
|
+
<input type="text" name="LOCATION" class=" text" id="mce-LOCATION" value="/">
|
|
423
|
+
</div>
|
|
424
|
+
<div id="mce-responses" class="clear foot">
|
|
425
|
+
<div class="response" id="mce-error-response" style="display: none;"></div>
|
|
426
|
+
<div class="response" id="mce-success-response" style="display: none;"></div>
|
|
427
|
+
</div>
|
|
428
|
+
<div aria-hidden="true" style="position: absolute; left: -5000px;">
|
|
429
|
+
/* real people should not fill this in and expect good things - do not remove this
|
|
430
|
+
or
|
|
431
|
+
risk
|
|
432
|
+
form bot
|
|
433
|
+
signups */
|
|
434
|
+
<input type="text" name="b_1dcdd74de47214edace5b6f49_c60b5def86" tabindex="-1" value="">
|
|
435
|
+
</div>
|
|
436
|
+
</div>
|
|
437
|
+
<button type="submit" name="subscribe" id="mc-embedded-subscribe"
|
|
438
|
+
value="Subscribe">Subscribe</button>
|
|
439
|
+
</form>
|
|
440
|
+
</div>
|
|
441
|
+
</div>
|
|
442
|
+
</div>
|
|
443
|
+
<div class="footer-flex homepage-row">
|
|
444
|
+
<div></div>
|
|
445
|
+
<small>
|
|
446
|
+
© 2024 Widgetti BV. All rights reserved.
|
|
447
|
+
</small>
|
|
448
|
+
</div>
|
|
449
|
+
</footer>
|
|
450
|
+
</main>
|
|
451
|
+
</template>
|
|
452
|
+
|
|
453
|
+
<style id="solara-website-homepage">
|
|
454
|
+
/* VARIABLES */
|
|
455
|
+
|
|
456
|
+
:root {
|
|
457
|
+
--color-background: #14100C;
|
|
458
|
+
--color-background-top: #21180D;
|
|
459
|
+
--marketing-primary-text-title: #F3F0EC;
|
|
460
|
+
|
|
461
|
+
--color-text: rgba(255, 255, 255, 0.95) !important;
|
|
462
|
+
--color-text-secondary: #B2B0AD;
|
|
463
|
+
|
|
464
|
+
--dark-color-primary: var(--color-text) !important;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
html, body {
|
|
468
|
+
overflow-x: hidden;
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
body {
|
|
472
|
+
margin: 0;
|
|
473
|
+
background-color: var(--color-background);
|
|
474
|
+
box-sizing: border-box;
|
|
475
|
+
|
|
476
|
+
display: flex;
|
|
477
|
+
flex-direction: column;
|
|
478
|
+
justify-content: flex-start;
|
|
479
|
+
align-items: stretch;
|
|
480
|
+
|
|
481
|
+
color: var(--color-text);
|
|
482
|
+
font-family: "Roboto, sans-serif";
|
|
483
|
+
font-style: normal;
|
|
484
|
+
font-weight: 500;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
h1 {
|
|
488
|
+
color: var(--marketing-primary-text-title, #F3F0EC);
|
|
489
|
+
text-align: center;
|
|
490
|
+
font-size: 62px;
|
|
491
|
+
line-height: 66px;
|
|
492
|
+
font-style: normal;
|
|
493
|
+
font-weight: 600;
|
|
494
|
+
margin: 0;
|
|
495
|
+
max-width: 80%;
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
h2 {
|
|
499
|
+
color: var(--marketing-primary-text-title, #F3F0EC);
|
|
500
|
+
text-align: center;
|
|
501
|
+
font-size: 26px;
|
|
502
|
+
font-style: normal;
|
|
503
|
+
font-weight: 400;
|
|
504
|
+
line-height: 36px;
|
|
505
|
+
margin: 0;
|
|
506
|
+
max-width: 80%;
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
h3 {
|
|
510
|
+
color: var(--marketing-primary-text-title, #F3F0EC);
|
|
511
|
+
text-align: center;
|
|
512
|
+
font-size: 20px;
|
|
513
|
+
font-style: normal;
|
|
514
|
+
font-weight: 400;
|
|
515
|
+
line-height: 28px;
|
|
516
|
+
margin: 0;
|
|
517
|
+
max-width: 90%;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
h4 {
|
|
521
|
+
color: var(--color-text-secondary, #F3F0EC);
|
|
522
|
+
text-align: center;
|
|
523
|
+
font-size: 16px;
|
|
524
|
+
font-style: normal;
|
|
525
|
+
font-weight: 400;
|
|
526
|
+
line-height: 24px;
|
|
527
|
+
margin: 0;
|
|
528
|
+
max-width: 90%;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
p {
|
|
532
|
+
color: var(--color-text-secondary, #F3F0EC);
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
.footer-flex.homepage-row b {
|
|
536
|
+
color: var(--marketing-primary-text-title, #F3F0EC);
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
main > section {
|
|
540
|
+
width: 100%;
|
|
541
|
+
display: flex;
|
|
542
|
+
flex-direction: column;
|
|
543
|
+
justify-content: center;
|
|
544
|
+
align-items: center;
|
|
545
|
+
gap: 15px;
|
|
546
|
+
padding: 60px 0;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
.v-application main > section a, .v-application main > footer a {
|
|
550
|
+
text-decoration: none;
|
|
551
|
+
color: var(--color-text);
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
/* BASE CLASSES */
|
|
555
|
+
|
|
556
|
+
/* borders & shadow */
|
|
557
|
+
.card {
|
|
558
|
+
border-radius: 20px;
|
|
559
|
+
border: 1px solid rgba(194, 180, 163, 0.28);
|
|
560
|
+
background: linear-gradient(180deg, rgba(255, 190, 115, 0.01) 0%, rgba(255, 190, 115, 0.00) 100%);
|
|
561
|
+
box-shadow: 0px -2px 20px 0px rgba(255, 240, 223, 0.10);
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
.card-flat {
|
|
565
|
+
border-radius: 20px;
|
|
566
|
+
background: linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.00) 100%), rgba(255, 255, 255, 0.04);
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
.homepage-row {
|
|
570
|
+
flex-direction: row;
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
.homepage-column {
|
|
574
|
+
flex-direction: column;
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
/* HERO */
|
|
578
|
+
|
|
579
|
+
section#hero {
|
|
580
|
+
position: relative;
|
|
581
|
+
overflow: hidden;
|
|
582
|
+
min-height: 100vh;
|
|
583
|
+
padding: 0;
|
|
584
|
+
|
|
585
|
+
display: flex;
|
|
586
|
+
flex-direction: column;
|
|
587
|
+
justify-content: center;
|
|
588
|
+
align-items: center;
|
|
589
|
+
gap: 40px;
|
|
590
|
+
|
|
591
|
+
background-color: var(--color-background);
|
|
592
|
+
background: linear-gradient(#1F160C 0%, #42290D 25%, #A16521 50%, #DBB66E 100%);
|
|
593
|
+
}
|
|
594
|
+
section#hero > *{
|
|
595
|
+
z-index: 2;
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
#hero .in-hero-banner {
|
|
599
|
+
display: flex;
|
|
600
|
+
padding: 4px 12px;
|
|
601
|
+
align-items: center;
|
|
602
|
+
gap: 6px;
|
|
603
|
+
border-radius: 32px;
|
|
604
|
+
font-size: 0.9rem;
|
|
605
|
+
border: var(--radius-none, 1px) solid var(--marketing-stroke-card-287, rgba(194, 180, 163, 0.28));
|
|
606
|
+
background: radial-gradient(176.49% 77.4% at 46.47% 0%, rgba(255, 192, 120, 0.06) 0%, rgba(255, 192, 120, 0.00) 100%), linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.00) 100%);
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
#hero .hero-planet-element {
|
|
610
|
+
width: 150vw;
|
|
611
|
+
aspect-ratio: 3/1;
|
|
612
|
+
|
|
613
|
+
position: absolute;
|
|
614
|
+
bottom: -35vw;
|
|
615
|
+
z-index: 1;
|
|
616
|
+
|
|
617
|
+
border-radius: 100%;
|
|
618
|
+
|
|
619
|
+
/* border: var(--radius-none, 1px) solid rgba(255, 255, 255, 0.05); */
|
|
620
|
+
background: radial-gradient(51.38% 51.38% at 50% 50%, #14100C 67.59%, #141210 85.76%, #EBAC60 100%);
|
|
621
|
+
box-shadow: 0px 1px 0px 0px #D9B589 inset, 0px -2px 10px 0px rgba(255, 240, 223, 0.50), 0px -2px 40px 0px rgba(217, 179, 137, 0.35), 0px -20px 40px 0px rgba(255, 240, 223, 0.20), 0px -10px 250px 5px #DCB46E;
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
.solara-pre-rendered #hero .hero-planet-element,
|
|
625
|
+
.solara-no-ssg #hero .hero-planet-element {
|
|
626
|
+
animation: 1.5s ease-in 0s 1 sunRise;
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
#hero .hero-stars {
|
|
630
|
+
position: absolute;
|
|
631
|
+
top: 0;
|
|
632
|
+
left: 0;
|
|
633
|
+
width: 100%;
|
|
634
|
+
height: 30vh;
|
|
635
|
+
z-index: 0;
|
|
636
|
+
background: url("https://dxhl76zpt6fap.cloudfront.net/new-homepage/backgrounds/subscribe-stars.svg") repeat;
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
#hero h1 {
|
|
640
|
+
max-width: 60%;
|
|
641
|
+
font-size: 80px;
|
|
642
|
+
line-height: 84px;
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
#hero h2 {
|
|
646
|
+
max-width: 40%;
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
.solara-pre-rendered #hero h1,
|
|
650
|
+
.solara-pre-rendered #hero h2,
|
|
651
|
+
.solara-no-ssg #hero h1,
|
|
652
|
+
.solara-no-ssg #hero h2 {
|
|
653
|
+
animation: 1.5s ease-in 0s 1 fadeTitles;
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
@keyframes sunRise {
|
|
657
|
+
0% {
|
|
658
|
+
transform: translateY(10vh);
|
|
659
|
+
border: var(--radius-none, 1px) solid rgba(255, 255, 255, 0.05);
|
|
660
|
+
background: radial-gradient(51.38% 51.38% at 50% 50%, #14100C 67.59%, #141210 85.76%, #EBAC60 100%);
|
|
661
|
+
box-shadow: 0px 1px 0px 0px #BF8D50 inset;
|
|
662
|
+
}
|
|
663
|
+
100% {
|
|
664
|
+
transform: translateY(0);
|
|
665
|
+
border: var(--radius-none, 1px) solid rgba(255, 255, 255, 0.05);
|
|
666
|
+
background: radial-gradient(51.38% 51.38% at 50% 50%, #14100C 67.59%, #141210 85.76%, #EBAC60 100%);
|
|
667
|
+
box-shadow: 0px 1px 0px 0px #D9B589 inset, 0px -2px 10px 0px rgba(255, 240, 223, 0.50), 0px -2px 40px 0px rgba(217, 179, 137, 0.35), 0px -20px 40px 0px rgba(255, 240, 223, 0.20), 0px -10px 250px 5px #DCB46E;
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
@keyframes fadeTitles {
|
|
672
|
+
0% {
|
|
673
|
+
opacity: 0;
|
|
674
|
+
transform: translateY(40px);
|
|
675
|
+
}
|
|
676
|
+
100% {
|
|
677
|
+
opacity: 1;
|
|
678
|
+
transform: translateY(0);
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
/* BRAND TRUST */
|
|
683
|
+
|
|
684
|
+
#brand-trust .logo-grid {
|
|
685
|
+
padding: 20px 0;
|
|
686
|
+
width: 40%;
|
|
687
|
+
display: grid;
|
|
688
|
+
grid-template-columns: repeat(4, minmax(100px, 1fr));
|
|
689
|
+
|
|
690
|
+
gap: 32px;
|
|
691
|
+
justify-content: center;
|
|
692
|
+
align-items: center;
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
#brand-trust .logo-grid a {
|
|
696
|
+
display: flex;
|
|
697
|
+
width: 100%;
|
|
698
|
+
justify-content: center;
|
|
699
|
+
align-items: center;
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
#brand-trust .logo-grid img {
|
|
703
|
+
filter: grayscale(1) contrast(0.2) brightness(1.5);
|
|
704
|
+
transition: 0.3s ease all;
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
#brand-trust .logo-grid img:hover {
|
|
708
|
+
filter: grayscale(0) contrast(1) brightness(1);
|
|
709
|
+
transition: 0.3s ease all;
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
/* MODERN */
|
|
713
|
+
|
|
714
|
+
.modern-element-container {
|
|
715
|
+
width: 80%;
|
|
716
|
+
padding: 30px 1px;
|
|
717
|
+
margin-top: 40px;
|
|
718
|
+
|
|
719
|
+
display: flex;
|
|
720
|
+
justify-content: center;
|
|
721
|
+
align-items: center;
|
|
722
|
+
gap: 40px;
|
|
723
|
+
}
|
|
724
|
+
.double-tile-container {
|
|
725
|
+
width: 80%;
|
|
726
|
+
margin-top: 40px;
|
|
727
|
+
|
|
728
|
+
display: flex;
|
|
729
|
+
justify-content: center;
|
|
730
|
+
align-items: stretch;
|
|
731
|
+
gap: 40px;
|
|
732
|
+
}
|
|
733
|
+
.modern-tile {
|
|
734
|
+
width: 100%;
|
|
735
|
+
max-width: 600px;
|
|
736
|
+
flex-grow: 1;
|
|
737
|
+
display: flex;
|
|
738
|
+
flex-direction: column;
|
|
739
|
+
justify-content: center;
|
|
740
|
+
align-items: center;
|
|
741
|
+
gap: 10px;
|
|
742
|
+
}
|
|
743
|
+
.stack-text-container {
|
|
744
|
+
width: 100%;
|
|
745
|
+
padding: 0 24px 24px 24px;
|
|
746
|
+
box-sizing: border-box;
|
|
747
|
+
}
|
|
748
|
+
.stack-text-container h2 {
|
|
749
|
+
text-align: left;
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
/* FEATURES */
|
|
753
|
+
|
|
754
|
+
#features .triple-tile-container {
|
|
755
|
+
width: 80%;
|
|
756
|
+
padding: 30px 1px;
|
|
757
|
+
margin-top: 40px;
|
|
758
|
+
max-width: 1300px;
|
|
759
|
+
|
|
760
|
+
display: grid;
|
|
761
|
+
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
|
|
762
|
+
grid-template-rows: repeat(auto-fill, minmax(300px, 1fr));
|
|
763
|
+
justify-content: stretch;
|
|
764
|
+
align-items: stretch;
|
|
765
|
+
gap: 40px;
|
|
766
|
+
}
|
|
767
|
+
.feature {
|
|
768
|
+
display: flex;
|
|
769
|
+
flex-direction: column;
|
|
770
|
+
justify-content: center;
|
|
771
|
+
align-items: center;
|
|
772
|
+
gap: 10px;
|
|
773
|
+
}
|
|
774
|
+
.feature.double-height {
|
|
775
|
+
grid-row: span 2;
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
/* CHOICE */
|
|
779
|
+
|
|
780
|
+
.full-width-slideshow-container {
|
|
781
|
+
position: relative;
|
|
782
|
+
width: 120%;
|
|
783
|
+
height: 400px;
|
|
784
|
+
max-height: 40vh;
|
|
785
|
+
|
|
786
|
+
display: flex;
|
|
787
|
+
flex-direction: row;
|
|
788
|
+
align-items: stretch;
|
|
789
|
+
gap: 40px;
|
|
790
|
+
}
|
|
791
|
+
.slideshow-column {
|
|
792
|
+
display: flex;
|
|
793
|
+
flex-direction: column;
|
|
794
|
+
justify-content: stretch;
|
|
795
|
+
gap: 40px;
|
|
796
|
+
width: 25%;
|
|
797
|
+
}
|
|
798
|
+
.slideshow-row {
|
|
799
|
+
display: flex;
|
|
800
|
+
flex-direction: row;
|
|
801
|
+
justify-content: stretch;
|
|
802
|
+
gap: 40px;
|
|
803
|
+
}
|
|
804
|
+
.full-width-slideshow-container .piece {
|
|
805
|
+
border-radius: 10px;
|
|
806
|
+
overflow: hidden;
|
|
807
|
+
|
|
808
|
+
height: 0;
|
|
809
|
+
min-height: 0;
|
|
810
|
+
}
|
|
811
|
+
.full-width-slideshow-container .piece img {
|
|
812
|
+
width: 100%;
|
|
813
|
+
height: 100%;
|
|
814
|
+
object-fit: cover;
|
|
815
|
+
}
|
|
816
|
+
.bottom-fade {
|
|
817
|
+
position: absolute;
|
|
818
|
+
bottom: 0;
|
|
819
|
+
left: 0;
|
|
820
|
+
|
|
821
|
+
background: linear-gradient(0deg, #14100C 0%, rgba(20, 16, 12, 0.98) 4.68%, rgba(20, 16, 12, 0.96) 8.87%, rgba(20, 16, 12, 0.93) 12.76%, rgba(20, 16, 12, 0.90) 16.51%, rgba(20, 16, 12, 0.86) 20.3%, rgba(20, 16, 12, 0.82) 24.32%, rgba(20, 16, 12, 0.77) 28.74%, rgba(20, 16, 12, 0.71) 33.73%, rgba(20, 16, 12, 0.65) 39.47%, rgba(20, 16, 12, 0.57) 46.14%, rgba(20, 16, 12, 0.48) 53.93%, rgba(20, 16, 12, 0.38) 62.99%, rgba(20, 16, 12, 0.27) 73.52%, rgba(20, 16, 12, 0.14) 85.69%, rgba(20, 16, 12, 0.00) 99.67%);
|
|
822
|
+
width: 100%;
|
|
823
|
+
height: 25%;
|
|
824
|
+
}
|
|
825
|
+
|
|
826
|
+
/* CUTTING-EDGE */
|
|
827
|
+
|
|
828
|
+
#cutting-edge button.cta {
|
|
829
|
+
color: var(--color-text);
|
|
830
|
+
display: flex;
|
|
831
|
+
padding: 6px 16px;
|
|
832
|
+
flex-direction: column;
|
|
833
|
+
align-items: center;
|
|
834
|
+
border-radius: 32px;
|
|
835
|
+
border: var(--radius-none, 1px) solid rgba(112, 104, 94, 0.80);
|
|
836
|
+
background: radial-gradient(176.49% 77.4% at 46.47% 0%, rgba(255, 192, 120, 0.06) 0%, rgba(255, 192, 120, 0.00) 100%), linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.00) 100%);
|
|
837
|
+
box-shadow: 0px 0.5px 0px 0px rgba(217, 181, 137, 0.50) inset;
|
|
838
|
+
cursor: pointer;
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
.testimonials {
|
|
842
|
+
max-width: 80%;
|
|
843
|
+
display: flex;
|
|
844
|
+
flex-direction: row;
|
|
845
|
+
justify-content: center;
|
|
846
|
+
align-items: stretch;
|
|
847
|
+
flex-wrap: wrap;
|
|
848
|
+
gap: 40px;
|
|
849
|
+
}
|
|
850
|
+
|
|
851
|
+
.testimonial {
|
|
852
|
+
display: flex;
|
|
853
|
+
flex-direction: column;
|
|
854
|
+
justify-content: space-between;
|
|
855
|
+
align-items: flex-start;
|
|
856
|
+
gap: 10px;
|
|
857
|
+
|
|
858
|
+
padding: 40px;
|
|
859
|
+
width: 350px;
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
.testimonial > img {
|
|
863
|
+
filter: grayscale(1) contrast(0) brightness(1.5);
|
|
864
|
+
}
|
|
865
|
+
|
|
866
|
+
.testimonial-attribution {
|
|
867
|
+
display: flex;
|
|
868
|
+
flex-direction: row;
|
|
869
|
+
justify-content: flex-start;
|
|
870
|
+
align-items: center;
|
|
871
|
+
gap: 10px;
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
.testimonial-attribution h4 {
|
|
875
|
+
text-align: start;
|
|
876
|
+
font-size: 1.25rem;
|
|
877
|
+
color: var(--color-text);
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
.testimonial-attribution p {
|
|
881
|
+
margin: 0;
|
|
882
|
+
}
|
|
883
|
+
|
|
884
|
+
.testimonial-attribution img {
|
|
885
|
+
width: 60px;
|
|
886
|
+
height: 60px;
|
|
887
|
+
border-radius: 50%;
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
/* LEARNING */
|
|
891
|
+
|
|
892
|
+
#learning .top-part {
|
|
893
|
+
display: flex;
|
|
894
|
+
flex-direction: column;
|
|
895
|
+
justify-content: center;
|
|
896
|
+
align-items: center;
|
|
897
|
+
gap: 40px;
|
|
898
|
+
min-height: 400px;
|
|
899
|
+
background: url("https://dxhl76zpt6fap.cloudfront.net/new-homepage/backgrounds/subscribe-stars.svg") no-repeat;
|
|
900
|
+
}
|
|
901
|
+
|
|
902
|
+
#learning .bottom-part {
|
|
903
|
+
position: relative;
|
|
904
|
+
width: 100%;
|
|
905
|
+
|
|
906
|
+
display: flex;
|
|
907
|
+
flex-direction: column;
|
|
908
|
+
justify-content: center;
|
|
909
|
+
align-items: center;
|
|
910
|
+
gap: 40px;
|
|
911
|
+
}
|
|
912
|
+
|
|
913
|
+
/* DEPLOY */
|
|
914
|
+
|
|
915
|
+
#deploy {
|
|
916
|
+
flex-direction: row;
|
|
917
|
+
flex-wrap: wrap;
|
|
918
|
+
align-items: stretch;
|
|
919
|
+
gap: 40px;
|
|
920
|
+
max-width: 80%;
|
|
921
|
+
margin: 0 auto;
|
|
922
|
+
}
|
|
923
|
+
|
|
924
|
+
.deploy-card {
|
|
925
|
+
width: 400px;
|
|
926
|
+
min-height: 450px;
|
|
927
|
+
display: flex;
|
|
928
|
+
flex-direction: column;
|
|
929
|
+
justify-content: flex-start;
|
|
930
|
+
align-items: center;
|
|
931
|
+
gap: 40px;
|
|
932
|
+
padding: 60px;
|
|
933
|
+
}
|
|
934
|
+
|
|
935
|
+
.deploy-card-top-text {
|
|
936
|
+
display: flex;
|
|
937
|
+
flex-direction: column;
|
|
938
|
+
justify-content: center;
|
|
939
|
+
align-items: flex-start;
|
|
940
|
+
}
|
|
941
|
+
.deploy-card-top-text a {
|
|
942
|
+
font-size: 1.15rem;
|
|
943
|
+
font-weight: 600;
|
|
944
|
+
color: var(--color-text);
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
/* READY */
|
|
948
|
+
|
|
949
|
+
#ready {
|
|
950
|
+
gap: 40px;
|
|
951
|
+
}
|
|
952
|
+
|
|
953
|
+
#ready a {
|
|
954
|
+
display: flex;
|
|
955
|
+
padding: 8px 32px;
|
|
956
|
+
flex-direction: column;
|
|
957
|
+
align-items: center;
|
|
958
|
+
border-radius: 32px;
|
|
959
|
+
border: var(--radius-none, 1px) solid rgba(112, 104, 94, 0.80);
|
|
960
|
+
background: radial-gradient(176.49% 77.4% at 46.47% 0%, rgba(255, 192, 120, 0.06) 0%, rgba(255, 192, 120, 0.00) 100%), linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.00) 100%);
|
|
961
|
+
box-shadow: 0px 0.5px 0px 0px rgba(217, 181, 137, 0.50) inset;
|
|
962
|
+
}
|
|
963
|
+
|
|
964
|
+
#ready .bottom-planet-container {
|
|
965
|
+
position: relative;
|
|
966
|
+
width: 80%;
|
|
967
|
+
height: 200px;
|
|
968
|
+
overflow: hidden;
|
|
969
|
+
|
|
970
|
+
display: flex;
|
|
971
|
+
align-items: center;
|
|
972
|
+
justify-content: center;
|
|
973
|
+
background: radial-gradient(rgba(217, 181, 137, 0.25) 0%, rgba(255,255,255,0) 35%);
|
|
974
|
+
background-position: center center;
|
|
975
|
+
}
|
|
976
|
+
|
|
977
|
+
#ready .bottom-planet-container .left-fade {
|
|
978
|
+
position: absolute;
|
|
979
|
+
left: 0;
|
|
980
|
+
height: 100%;
|
|
981
|
+
width: 150px;
|
|
982
|
+
z-index: 2;
|
|
983
|
+
background: linear-gradient(270deg, rgba(20, 16, 12, 0.00) 0%, rgba(20, 16, 12, 0.01) 2.53%, rgba(20, 16, 12, 0.02) 5.16%, rgba(20, 16, 12, 0.05) 7.83%, rgba(20, 16, 12, 0.08) 10.5%, rgba(20, 16, 12, 0.13) 13.15%, rgba(20, 16, 12, 0.18) 15.74%, rgba(20, 16, 12, 0.25) 18.21%, rgba(20, 16, 12, 0.32) 20.54%, rgba(20, 16, 12, 0.40) 22.68%, rgba(20, 16, 12, 0.48) 24.6%, rgba(20, 16, 12, 0.58) 26.26%, rgba(20, 16, 12, 0.67) 27.62%, rgba(20, 16, 12, 0.78) 28.64%, rgba(20, 16, 12, 0.89) 29.28%, #14100C 29.5%);
|
|
984
|
+
}
|
|
985
|
+
|
|
986
|
+
#ready .bottom-planet-container .right-fade {
|
|
987
|
+
position: absolute;
|
|
988
|
+
right: 0;
|
|
989
|
+
height: 100%;
|
|
990
|
+
width: 150px;
|
|
991
|
+
z-index: 2;
|
|
992
|
+
background: linear-gradient(270deg, #14100C 70.5%, rgba(20, 16, 12, 0.99) 73.04%, rgba(20, 16, 12, 0.98) 75.66%, rgba(20, 16, 12, 0.95) 78.33%, rgba(20, 16, 12, 0.92) 81.01%, rgba(20, 16, 12, 0.87) 83.66%, rgba(20, 16, 12, 0.82) 86.24%, rgba(20, 16, 12, 0.75) 88.71%, rgba(20, 16, 12, 0.68) 91.04%, rgba(20, 16, 12, 0.60) 93.18%, rgba(20, 16, 12, 0.52) 95.11%, rgba(20, 16, 12, 0.42) 96.76%, rgba(20, 16, 12, 0.33) 98.12%, rgba(20, 16, 12, 0.22) 99.14%, rgba(20, 16, 12, 0.11) 99.78%, rgba(20, 16, 12, 0.00) 100%);
|
|
993
|
+
}
|
|
994
|
+
|
|
995
|
+
#ready .bottom-planet-container .bottom-fade {
|
|
996
|
+
z-index: 2;
|
|
997
|
+
}
|
|
998
|
+
|
|
999
|
+
#ready .bottom-planet-element {
|
|
1000
|
+
width: 100vw;
|
|
1001
|
+
aspect-ratio: 2/1;
|
|
1002
|
+
|
|
1003
|
+
position: absolute;
|
|
1004
|
+
top: 75px;
|
|
1005
|
+
|
|
1006
|
+
border-radius: 100%;
|
|
1007
|
+
background-color: #181818;
|
|
1008
|
+
border: 1px solid rgba(255, 255, 255, 0.45);
|
|
1009
|
+
}
|
|
1010
|
+
|
|
1011
|
+
/* FOOTER */
|
|
1012
|
+
|
|
1013
|
+
footer {
|
|
1014
|
+
display: flex;
|
|
1015
|
+
flex-direction: column;
|
|
1016
|
+
align-items: stretch;
|
|
1017
|
+
justify-content: space-between;
|
|
1018
|
+
gap: 100px;
|
|
1019
|
+
padding: 100px 60px;
|
|
1020
|
+
|
|
1021
|
+
border-top-width: 1px;
|
|
1022
|
+
border-top-style: solid;
|
|
1023
|
+
border-image: linear-gradient(to right, rgba(255,255,255,0) 25%, rgba(217, 181, 137, 0.25) 50%, rgba(255,255,255,0) 75%) 1;
|
|
1024
|
+
background: var(--marketing-bg-bg-radial-r-1, radial-gradient(53.93% 32.81% at 50% 0%, rgba(255, 184, 102, 0.02) 0%, rgba(255, 184, 102, 0.00) 100%));
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
footer img.logo {
|
|
1028
|
+
filter: grayscale(1) contrast(0) brightness(1.5);
|
|
1029
|
+
}
|
|
1030
|
+
footer img.logo:hover {
|
|
1031
|
+
filter: grayscale(0) contrast(1) brightness(1);
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
.footer-flex {
|
|
1035
|
+
display: flex;
|
|
1036
|
+
justify-content: space-between;
|
|
1037
|
+
align-items: stretch;
|
|
1038
|
+
flex-wrap: wrap;
|
|
1039
|
+
gap: 40px;
|
|
1040
|
+
padding: 20px 0;
|
|
1041
|
+
}
|
|
1042
|
+
|
|
1043
|
+
.ext-link {
|
|
1044
|
+
display: flex;
|
|
1045
|
+
padding: 8px 12px;
|
|
1046
|
+
align-items: center;
|
|
1047
|
+
gap: 6px;
|
|
1048
|
+
border-radius: 8px;
|
|
1049
|
+
background: radial-gradient(167.96% 73.66% at 50% 0%, rgba(255, 192, 120, 0.06) 0%, rgba(255, 192, 120, 0.00) 100%), linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.00) 100%);
|
|
1050
|
+
}
|
|
1051
|
+
|
|
1052
|
+
/* MAILCHIMP */
|
|
1053
|
+
|
|
1054
|
+
#mc_embed_signup {
|
|
1055
|
+
background: transparent;
|
|
1056
|
+
clear: left;
|
|
1057
|
+
min-width: 250px;
|
|
1058
|
+
}
|
|
1059
|
+
#mc_embed_signup form {
|
|
1060
|
+
display: flex;
|
|
1061
|
+
flex-direction: row;
|
|
1062
|
+
justify-content: stretch;
|
|
1063
|
+
align-items: center;
|
|
1064
|
+
gap: 20px;
|
|
1065
|
+
margin: 0 !important;
|
|
1066
|
+
|
|
1067
|
+
box-sizing: border-box;
|
|
1068
|
+
min-width: 250px;
|
|
1069
|
+
padding: 8px 12px;
|
|
1070
|
+
border-radius: var(--Border-Radius-radius-sm, 8px);
|
|
1071
|
+
border: 1px solid var(--marketing-stroke-card-10, rgba(194, 180, 163, 0.10));
|
|
1072
|
+
background: var(--opacity-02, rgba(255, 255, 255, 0.00));
|
|
1073
|
+
}
|
|
1074
|
+
#mc-embedded-subscribe {
|
|
1075
|
+
background-color: transparent;
|
|
1076
|
+
color: var(--color-text);
|
|
1077
|
+
font-size: 1rem;
|
|
1078
|
+
border: none;
|
|
1079
|
+
cursor: pointer;
|
|
1080
|
+
}
|
|
1081
|
+
#mce-EMAIL {
|
|
1082
|
+
background-color: transparent;
|
|
1083
|
+
color: var(--color-text);
|
|
1084
|
+
border: none;
|
|
1085
|
+
flex-grow: 1;
|
|
1086
|
+
height: 100%;
|
|
1087
|
+
}
|
|
1088
|
+
#mce-EMAIL:focus {
|
|
1089
|
+
outline: none;
|
|
1090
|
+
}
|
|
1091
|
+
#mc-embedded-subscribe-form {
|
|
1092
|
+
width: 100%;
|
|
1093
|
+
display: flex;
|
|
1094
|
+
flex-direction: row;
|
|
1095
|
+
justify-content: center;
|
|
1096
|
+
align-items: center;
|
|
1097
|
+
gap: 20px;
|
|
1098
|
+
}
|
|
1099
|
+
#mc_embed_signup .indicates-required{
|
|
1100
|
+
margin-right: 0;
|
|
1101
|
+
}
|
|
1102
|
+
#mc_embed_signup .mc-field-group{
|
|
1103
|
+
width: 100%;
|
|
1104
|
+
}
|
|
1105
|
+
|
|
1106
|
+
@media screen and (max-width: 1000px) {
|
|
1107
|
+
h1 {
|
|
1108
|
+
font-size: 2rem;
|
|
1109
|
+
line-height: 2.1rem;
|
|
1110
|
+
}
|
|
1111
|
+
#hero h1 {
|
|
1112
|
+
max-width: 80%;
|
|
1113
|
+
font-size: 2.5rem;
|
|
1114
|
+
line-height: 2.5rem;
|
|
1115
|
+
}
|
|
1116
|
+
#hero h2 {
|
|
1117
|
+
max-width: 65%;
|
|
1118
|
+
font-size: 1.25rem;
|
|
1119
|
+
line-height: 1.25rem;
|
|
1120
|
+
}
|
|
1121
|
+
.double-tile-container {
|
|
1122
|
+
flex-direction: column;
|
|
1123
|
+
}
|
|
1124
|
+
.modern-tile {
|
|
1125
|
+
max-width: 100%;
|
|
1126
|
+
}
|
|
1127
|
+
#brand-trust .logo-grid {
|
|
1128
|
+
width: 60%;
|
|
1129
|
+
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
|
|
1130
|
+
}
|
|
1131
|
+
}
|
|
1132
|
+
|
|
1133
|
+
/* VUETIFY CSS OVERRIDES */
|
|
1134
|
+
|
|
1135
|
+
#mc_embed_signup .mc-field-group input {
|
|
1136
|
+
padding: 0 !important;
|
|
1137
|
+
}
|
|
1138
|
+
#mc_embed_signup input {
|
|
1139
|
+
border: none !important;
|
|
1140
|
+
}
|
|
1141
|
+
#mc-embedded-subscribe {
|
|
1142
|
+
margin: 0 !important;
|
|
1143
|
+
}
|
|
1144
|
+
#mc_embed_signup form {
|
|
1145
|
+
display: flex !important;
|
|
1146
|
+
}
|
|
1147
|
+
#mc_embed_signup .mc-field-group {
|
|
1148
|
+
min-height: unset !important;
|
|
1149
|
+
padding-bottom: 0 !important;
|
|
1150
|
+
}
|
|
1151
|
+
.v-sheet {
|
|
1152
|
+
background-color: transparent !important;
|
|
1153
|
+
}
|
|
1154
|
+
.v-application {
|
|
1155
|
+
background-color: transparent !important;
|
|
1156
|
+
}
|
|
1157
|
+
.theme--light.v-sheet, .theme--dark.v-sheet {
|
|
1158
|
+
color: var(--color-text) !important;
|
|
1159
|
+
}
|
|
1160
|
+
</style>
|
|
1161
|
+
|
|
1162
|
+
<script>
|
|
1163
|
+
|
|
1164
|
+
module.exports = {
|
|
1165
|
+
mounted() {
|
|
1166
|
+
document.querySelectorAll('a').forEach(this.setupRouter);
|
|
1167
|
+
},
|
|
1168
|
+
destroyed() {
|
|
1169
|
+
// when ssg is on, this css is not getting removed
|
|
1170
|
+
if(document.getElementById('ipyvue-solara-website-homepage')) {
|
|
1171
|
+
document.getElementById('ipyvue-solara-website-homepage').remove();
|
|
1172
|
+
}
|
|
1173
|
+
},
|
|
1174
|
+
methods: {
|
|
1175
|
+
setupRouter(a) {
|
|
1176
|
+
let href = a.attributes['href'].value;
|
|
1177
|
+
if(href.startsWith("./")) {
|
|
1178
|
+
// TODO: should we really do this?
|
|
1179
|
+
href = location.pathname + href.substr(1);
|
|
1180
|
+
a.attributes['href'].href = href;
|
|
1181
|
+
}
|
|
1182
|
+
let authLink = href.startsWith("/_solara/auth/");
|
|
1183
|
+
if( (href.startsWith("./") || href.startsWith("/")) && !authLink) {
|
|
1184
|
+
a.onclick = e => {
|
|
1185
|
+
if(href.startsWith("./")) {
|
|
1186
|
+
solara.router.push(href);
|
|
1187
|
+
} else {
|
|
1188
|
+
solara.router.push(href);
|
|
1189
|
+
}
|
|
1190
|
+
e.preventDefault()
|
|
1191
|
+
}
|
|
1192
|
+
} else if(href.startsWith("#")) {
|
|
1193
|
+
href = location.pathname + href;
|
|
1194
|
+
a.attributes['href'].value = href;
|
|
1195
|
+
}
|
|
1196
|
+
},
|
|
1197
|
+
},
|
|
1198
|
+
}
|
|
1199
|
+
</script>
|