Skip to content

Commit 5eb1863

Browse files
committed
feat: update pro dialog content
1 parent 4db475a commit 5eb1863

6 files changed

Lines changed: 188 additions & 100 deletions

File tree

src/nls/root/strings.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2082,13 +2082,13 @@ define({
20822082
"PROMO_UPGRADE_TITLE": "You’ve been upgraded to {0}",
20832083
"PROMO_UPGRADE_MESSAGE": "Enjoy free access to these premium features for the next {0} days:",
20842084
"PROMO_CARD_1": "Edit In Live Preview",
2085-
"PROMO_CARD_1_MESSAGE": "Edit content and elements right in Live Preview - cut, copy, paste, duplicate, delete - without breaking your flow.",
2086-
"PROMO_CARD_2": "Drag & Drop Elements",
2087-
"PROMO_CARD_2_MESSAGE": "Rearrange sections visually - try more layout ideas in seconds, not minutes of coding.",
2088-
"PROMO_CARD_3": "Stock Image Library",
2089-
"PROMO_CARD_3_MESSAGE": "Browse royalty-free images - hover to preview instantly, click to apply. Try more options, faster.",
2090-
"PROMO_CARD_4": "Inspect Element Layout",
2091-
"PROMO_CARD_4_MESSAGE": "Design and inspect in one view - hover to see spacing, dimensions, and classes. Ruler guides for pixel-perfect alignment.",
2085+
"PROMO_CARD_1_MESSAGE": "Edit text, update images, change links, drag elements, and more. Your code updates as you go.",
2086+
"PROMO_CARD_2": "AI in your editor",
2087+
"PROMO_CARD_2_MESSAGE": "Ask the AI to write code, fix bugs, or refactor your project. It does the work for you.",
2088+
"PROMO_CARD_3": "Preview Any Device",
2089+
"PROMO_CARD_3_MESSAGE": "Resize the live preview to any phone, tablet, or custom viewport - catch responsive issues before they ship.",
2090+
"PROMO_CARD_4": "Rich Markdown, Live",
2091+
"PROMO_CARD_4_MESSAGE": "A polished side-by-side markdown preview with diagrams, tables, and code blocks - rendered as you type.",
20922092
"PROMO_LEARN_MORE": "Learn More\u2026",
20932093
"PROMO_OPT_OUT_LINK": "Opt out?",
20942094
"PROMO_OPT_OUT_NOTE": "You can cancel your trial anytime by selecting `Help > Cancel Phoenix Pro Trial`.",

src/styles/images/ai-poster.jpg

88.5 KB
Loading
45.5 KB
Loading
83.8 KB
Loading
91.5 KB
Loading

src/styles/phoenix-pro.less

Lines changed: 181 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -31,150 +31,238 @@
3131

3232
/* Dialog styles with light default + .dark overrides */
3333
.browser-login-waiting-dialog, .pro-upgrade-dialog{
34-
/* ---- Layout ---- */
35-
.features-grid {
36-
display: grid;
37-
grid-template-columns: repeat(2, 1fr);
38-
gap: 16px;
34+
.modal-header .dialog-title {
35+
color: @bc-text-emphasized;
36+
.dark & { color: @dark-bc-text-alt; }
3937
}
4038

41-
/* ---- Cards ---- */
42-
.feature-card {
43-
background: @bc-panel-bg-alt; // light surface
44-
border: 1px solid @bc-panel-border; // subtle light border
45-
border-radius: @bc-border-radius-large; // 5px
46-
overflow: hidden;
47-
display: flex;
48-
flex-direction: column;
49-
transition: background 0.15s ease, border-color 0.15s ease;
39+
.waiting-content-container > p {
40+
margin-bottom: 20px;
41+
font-size: 14px;
42+
color: @bc-text-medium;
43+
.dark & { color: @dark-bc-text-medium; }
44+
}
5045

51-
.dark & {
52-
background: @dark-bc-panel-bg-alt; // #313131
53-
border: 1px solid @dark-bc-highlight; // rgba(255,255,255,0.06)
54-
border-radius: @dark-bc-border-radius-large;
55-
}
46+
a {
47+
color: @bc-text-link;
48+
text-decoration: none;
49+
.dark & { color: @dark-bc-text-link; }
5650
}
51+
a:hover { text-decoration: underline; }
52+
}
5753

58-
.feature-card:hover {
59-
background: @bc-panel-bg; // hover lift
60-
border-color: @bc-shadow-small; // rgba(0,0,0,0.06)
54+
.pro-upgrade-dialog.modal {
55+
width: 880px;
6156

62-
.dark & {
63-
background: @dark-bc-panel-bg; // #2c2c2c
64-
border-color: @dark-bc-panel-bg-hover;// rgba(255,255,255,0.12)
65-
}
57+
.modal-header {
58+
padding-bottom: 12px;
6659
}
6760

68-
.feature-card:focus-within {
69-
outline: 2px solid @bc-btn-border-focused; // #2893ef (light)
70-
outline-offset: 2px;
61+
.dialog-subtitle {
62+
margin: 6px 0 0;
63+
font-size: 13px;
64+
color: @bc-text-medium;
65+
.dark & { color: @dark-bc-text-medium; }
66+
}
7167

72-
.dark & {
73-
outline: 2px solid @dark-bc-btn-border-focused;// #2893ef (dark var)
74-
}
68+
.modal-body {
69+
padding: 0;
70+
max-height: none;
7571
}
7672

77-
/* ---- Media wrapper for image + video hover ---- */
78-
.feature-media-wrap {
73+
.feature-carousel {
7974
position: relative;
8075
width: 100%;
81-
height: 120px;
76+
user-select: none;
77+
}
78+
79+
/* ---- Media stage: video area with arrows + dots (16:9 at 880 wide) ---- */
80+
.feature-stage {
81+
position: relative;
82+
width: 100%;
83+
height: 495px;
8284
overflow: hidden;
83-
background: @bc-bg-inline-widget; // #e6e9e9
85+
background: #1b1b1b;
86+
}
8487

85-
.dark & {
86-
background: @dark-bc-bg-inline-widget;// #1b1b1b
87-
}
88+
.feature-slide {
89+
position: absolute;
90+
inset: 0;
91+
opacity: 0;
92+
pointer-events: none;
93+
transition: opacity 0.35s ease;
94+
}
95+
96+
.feature-slide.is-active {
97+
opacity: 1;
98+
pointer-events: auto;
8899
}
89100

90-
/* ---- Media thumb ---- */
91101
.feature-thumb {
102+
position: absolute;
103+
inset: 0;
92104
width: 100%;
93-
height: 120px;
94-
object-fit: cover;
95-
background: @bc-bg-inline-widget; // #e6e9e9
96-
transition: opacity 0.3s ease;
97-
98-
.dark & {
99-
background: @dark-bc-bg-inline-widget;// #1b1b1b
100-
}
105+
height: 100%;
106+
object-fit: contain;
107+
background: #1b1b1b;
101108
}
102109

103-
/* ---- Feature video (hidden by default, layered on top of image) ---- */
104110
.feature-video {
105111
position: absolute;
106-
top: 0;
107-
left: 0;
112+
inset: 0;
108113
width: 100%;
109114
height: 100%;
110-
object-fit: cover;
115+
object-fit: contain;
111116
opacity: 0;
112-
transition: opacity 0.3s ease;
117+
transition: opacity 0.4s ease;
113118
}
114119

115-
/* ---- Hover state: show video on top of image (image stays as fallback for offline) ---- */
116-
.feature-card:hover .feature-video {
120+
.feature-video.is-ready {
117121
opacity: 1;
118122
}
119123

120-
/* ---- Card body ---- */
121-
.feature-body {
122-
padding: 12px;
124+
/* ---- Subtle bottom gradient so dots stay legible on bright frames ---- */
125+
.feature-stage::after {
126+
content: '';
127+
position: absolute;
128+
left: 0;
129+
right: 0;
130+
bottom: 0;
131+
height: 56px;
132+
background: linear-gradient(to top, rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0));
133+
pointer-events: none;
134+
z-index: 1;
123135
}
124136

125-
.feature-body h2 {
126-
margin: 0 0 6px;
127-
font-size: 15px;
128-
color: @bc-text-emphasized; // #111
129-
130-
.dark & {
131-
color: @dark-bc-text-alt; // #fff
132-
}
137+
/* ---- Edge hover zones: only these reveal arrows on hover ---- */
138+
.carousel-hover-zone {
139+
position: absolute;
140+
top: 0;
141+
bottom: 0;
142+
width: 25%;
143+
z-index: 2;
133144
}
134145

135-
.feature-body p {
136-
margin: 0;
137-
font-size: 13px;
138-
color: @bc-text-medium; // #606060
139-
line-height: 1.35;
146+
.carousel-hover-zone-left { left: 0; }
147+
.carousel-hover-zone-right { right: 0; }
140148

141-
.dark & {
142-
color: @dark-bc-text-quiet; // #9a9a9a
149+
.carousel-arrow {
150+
position: absolute;
151+
top: 50%;
152+
transform: translateY(-50%);
153+
width: 42px;
154+
height: 42px;
155+
padding: 0;
156+
border: none;
157+
border-radius: 50%;
158+
background: rgba(0, 0, 0, 0.55);
159+
color: #fff;
160+
cursor: pointer;
161+
display: flex;
162+
align-items: center;
163+
justify-content: center;
164+
opacity: 1;
165+
transition: opacity 0.2s ease, background-color 0.15s ease, transform 0.15s ease;
166+
z-index: 3;
167+
168+
&:hover { background: rgba(0, 0, 0, 0.78); }
169+
&:active { transform: translateY(-50%) scale(0.95); }
170+
&:focus { outline: none; }
171+
&:focus-visible {
172+
outline: 2px solid @bc-btn-border-focused;
173+
outline-offset: 2px;
174+
}
175+
176+
&:disabled {
177+
opacity: 0;
178+
pointer-events: none;
143179
}
144180
}
145181

146-
/* ---- Header title ---- */
147-
.modal-header .dialog-title {
148-
color: @bc-text-emphasized; // #111 on light
182+
.carousel-arrow-prev { left: 16px; }
183+
.carousel-arrow-next { right: 16px; }
149184

150-
.dark & {
151-
color: @dark-bc-text-alt; // #fff on dark
185+
.carousel-dots {
186+
position: absolute;
187+
left: 50%;
188+
bottom: 16px;
189+
transform: translateX(-50%);
190+
display: flex;
191+
gap: 8px;
192+
z-index: 3;
193+
}
194+
195+
.carousel-dot {
196+
width: 8px;
197+
height: 8px;
198+
padding: 0;
199+
border: none;
200+
border-radius: 50%;
201+
background: rgba(255, 255, 255, 0.45);
202+
cursor: pointer;
203+
transition: background-color 0.15s ease, transform 0.15s ease;
204+
205+
&:hover { background: rgba(255, 255, 255, 0.8); }
206+
&:focus { outline: none; }
207+
&:focus-visible {
208+
outline: 2px solid @bc-btn-border-focused;
209+
outline-offset: 2px;
152210
}
153211
}
154212

155-
/* ---- Body copy ---- */
156-
.waiting-content-container > p {
157-
margin-bottom: 20px;
158-
font-size: 14px;
159-
color: @bc-text-medium; // #606060
213+
.carousel-dot.is-active {
214+
background: #fff;
215+
transform: scale(1.25);
216+
}
160217

218+
/* ---- Info panel below the stage ---- */
219+
.feature-info {
220+
position: relative;
221+
height: 70px;
222+
background: @bc-panel-bg-alt;
223+
border-top: 1px solid @bc-panel-border;
224+
overflow: hidden;
161225
.dark & {
162-
color: @dark-bc-text-medium; // #ccc
226+
background: @dark-bc-panel-bg-alt;
227+
border-top-color: @dark-bc-highlight;
163228
}
164229
}
165230

166-
/* ---- Links ---- */
167-
a {
168-
color: @bc-text-link; // #0083e8
169-
text-decoration: none;
231+
.feature-info-slide {
232+
position: absolute;
233+
inset: 0;
234+
padding: 10px 28px;
235+
opacity: 0;
236+
pointer-events: none;
237+
transition: opacity 0.35s ease;
238+
font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
239+
-webkit-font-smoothing: antialiased;
240+
-moz-osx-font-smoothing: grayscale;
241+
}
170242

171-
.dark & {
172-
color: @dark-bc-text-link; // #6bbeff
173-
}
243+
.feature-info-slide.is-active {
244+
opacity: 1;
245+
pointer-events: auto;
174246
}
175247

176-
a:hover {
177-
text-decoration: underline;
248+
.feature-info-slide h2 {
249+
margin: 0 0 3px;
250+
font-size: 18px;
251+
line-height: 1.25;
252+
letter-spacing: 0.02em;
253+
color: @bc-text-emphasized;
254+
.dark & { color: @dark-bc-text-alt; }
255+
}
256+
257+
.feature-info-slide p {
258+
margin: 0;
259+
font-size: 14px;
260+
line-height: 1.45;
261+
letter-spacing: 0.02em;
262+
word-spacing: 0.08em;
263+
color: @bc-text-medium;
264+
max-width: 780px;
265+
.dark & { color: @dark-bc-text-medium; }
178266
}
179267
}
180268

0 commit comments

Comments
 (0)