3232
3333 <div class =" whats-new-popup" @click.stop >
3434 <!-- Close Button -->
35- <button class =" close-button" aria-label =" Close" @click =" closePopup" >
35+ <button
36+ class =" close-button"
37+ :aria-label =" $t('g.close')"
38+ @click =" closePopup"
39+ >
3640 <div class =" close-icon" ></div >
3741 </button >
3842
3943 <!-- Release Content -->
4044 <div class =" popup-content" >
4145 <div class =" content-text" v-html =" formattedContent" ></div >
42- </div >
4346
44- <!-- Actions Section -->
45- <div class =" popup-actions" >
46- <a
47- class =" learn-more-link"
48- :href =" changelogUrl"
49- target =" _blank"
50- rel =" noopener,noreferrer"
51- @click =" closePopup"
52- >
53- {{ $t('whatsNewPopup.learnMore') }}
54- </a >
55- <!-- TODO: CTA button -->
56- <!-- <button class="cta-button" @click="handleCTA">CTA</button> -->
47+ <!-- Actions Section -->
48+ <div class =" popup-actions" >
49+ <a
50+ class =" learn-more-link"
51+ :href =" changelogUrl"
52+ target =" _blank"
53+ rel =" noopener,noreferrer"
54+ @click =" closePopup"
55+ >
56+ {{ $t('whatsNewPopup.learnMore') }}
57+ </a >
58+ <!-- TODO: CTA button -->
59+ <!-- <button class="cta-button" @click="handleCTA">CTA</button> -->
60+ </div >
5761 </div >
5862 </div >
5963 </div >
@@ -68,7 +72,7 @@ import type { ReleaseNote } from '@/services/releaseService'
6872import { useReleaseStore } from ' @/stores/releaseStore'
6973import { formatVersionAnchor } from ' @/utils/formatUtil'
7074
71- const { locale } = useI18n ()
75+ const { locale, t } = useI18n ()
7276const releaseStore = useReleaseStore ()
7377
7478// Local state for dismissed status
@@ -101,13 +105,12 @@ const changelogUrl = computed(() => {
101105// Format release content for display using marked
102106const formattedContent = computed (() => {
103107 if (! latestRelease .value ?.content ) {
104- return ' <p>No release notes available. </p>'
108+ return ` <p>${ t ( ' whatsNewPopup.noReleaseNotes ' )} </p> `
105109 }
106110
107111 try {
108112 // Use marked to parse markdown to HTML
109113 return marked (latestRelease .value .content , {
110- breaks: true , // Convert line breaks to <br>
111114 gfm: true // Enable GitHub Flavored Markdown
112115 })
113116 } catch (error ) {
@@ -199,14 +202,10 @@ defineExpose({
199202}
200203
201204.whats-new-popup {
202- padding : 32px 32px 24px ;
203205 background : #353535 ;
204206 border-radius : 12px ;
205207 max-width : 400px ;
206208 width : 400px ;
207- display : flex ;
208- flex-direction : column ;
209- gap : 32px ;
210209 outline : 1px solid #4e4e4e ;
211210 outline-offset : -1px ;
212211 box-shadow : 0px 8px 32px rgba (0 , 0 , 0 , 0.3 );
@@ -217,24 +216,28 @@ defineExpose({
217216.popup-content {
218217 display : flex ;
219218 flex-direction : column ;
219+ gap : 24px ;
220+ overflow : hidden ;
221+ padding : 32px 32px 24px ;
222+ border-radius : 12px ;
220223}
221224
222225/* Close button */
223226.close-button {
224227 position : absolute ;
225228 top : 0 ;
226229 right : 0 ;
227- width : 31 px ;
228- height : 31 px ;
229- padding : 6px 7 px ;
230+ width : 32 px ;
231+ height : 32 px ;
232+ padding : 6px ;
230233 background : #7c7c7c ;
231- border-radius : 15.5 px ;
234+ border-radius : 16 px ;
232235 border : none ;
233236 cursor : pointer ;
234237 display : flex ;
235238 justify-content : center ;
236239 align-items : center ;
237- transform : translate (50 % , -50 % );
240+ transform : translate (30 % , -30 % );
238241 transition :
239242 background-color 0.2s ease ,
240243 transform 0.1s ease ;
@@ -247,7 +250,7 @@ defineExpose({
247250
248251.close-button :active {
249252 background : #6a6a6a ;
250- transform : translate (50 % , -50 % ) scale (0.95 );
253+ transform : translate (30 % , -30 % ) scale (0.95 );
251254}
252255
253256.close-icon {
@@ -288,91 +291,114 @@ defineExpose({
288291.content-text {
289292 color : white ;
290293 font-size : 14px ;
291- font-family : ' Inter' , sans-serif ;
292- font-weight : 400 ;
293294 line-height : 1.5 ;
294295 word-wrap : break-word ;
295296}
296297
297298/* Style the markdown content */
298- .content-text :deep(h1 ) {
299- color : white ;
300- font-size : 20px ;
301- font-weight : 700 ;
302- margin : 0 0 16px 0 ;
303- line-height : 1.3 ;
304- }
305-
306- .content-text :deep(h2 ) {
307- color : white ;
308- font-size : 18px ;
309- font-weight : 600 ;
310- margin : 16px 0 12px 0 ;
311- line-height : 1.3 ;
299+ /* Title */
300+ .content-text :deep(* ) {
301+ box-sizing : border-box ;
302+ margin : 0 ;
303+ padding : 0 ;
312304}
313305
314- .content-text :deep(h2 :first-child ) {
315- margin-top : 0 ;
306+ .content-text :deep(h1 ) {
307+ font-size : 16px ;
308+ font-weight : 700 ;
309+ margin-bottom : 8px ;
316310}
317311
318- .content-text :deep(h3 ) {
319- color : white ;
312+ /* Version subtitle - targets the first p tag after h1 */
313+ .content-text :deep(h1 + p ) {
314+ color : #c0c0c0 ;
320315 font-size : 16px ;
321- font-weight : 600 ;
322- margin : 12 px 0 8 px 0 ;
323- line-height : 1.3 ;
316+ font-weight : 500 ;
317+ margin-bottom : 16 px ;
318+ opacity : 0.8 ;
324319}
325320
326- .content-text :deep(h3 :first-child ) {
327- margin-top : 0 ;
321+ /* Regular paragraphs - short description */
322+ .content-text :deep(p ) {
323+ margin-bottom : 16px ;
324+ color : #e0e0e0 ;
328325}
329326
330- .content-text :deep(h4 ) {
331- color : white ;
332- font-size : 14px ;
333- font-weight : 600 ;
334- margin : 8px 0 6px 0 ;
327+ /* List */
328+ .content-text :deep(ul ),
329+ .content-text :deep(ol ) {
330+ margin-bottom : 16px ;
331+ padding-left : 0 ;
332+ list-style : none ;
335333}
336334
337- .content-text :deep(h4 :first-child ) {
335+ .content-text :deep(ul :first-child ),
336+ .content-text :deep(ol :first-child ) {
338337 margin-top : 0 ;
339338}
340339
341- .content-text :deep(p ) {
342- margin : 0 0 12 px 0 ;
343- line-height : 1.6 ;
340+ .content-text :deep(ul :last-child ),
341+ .content-text :deep( ol :last-child ) {
342+ margin-bottom : 0 ;
344343}
345344
346- .content-text :deep(p :first-child ) {
347- margin-top : 0 ;
345+ /* List items */
346+ .content-text :deep(li ) {
347+ margin-bottom : 8px ;
348+ position : relative ;
349+ padding-left : 20px ;
348350}
349351
350- .content-text :deep(p :last-child ) {
352+ .content-text :deep(li :last-child ) {
351353 margin-bottom : 0 ;
352354}
353355
354- .content-text :deep(ul ),
355- .content-text :deep(ol ) {
356- margin : 0 0 12px 0 ;
357- padding-left : 24px ;
356+ /* Custom bullet points */
357+ .content-text :deep(li ::before ) {
358+ content : ' ' ;
359+ position : absolute ;
360+ left : 0 ;
361+ top : 10px ;
362+ display : flex ;
363+ width : 8px ;
364+ height : 8px ;
365+ justify-content : center ;
366+ align-items : center ;
367+ aspect-ratio : 1 /1 ;
368+ border-radius : 100px ;
369+ background : #60a5fa ;
358370}
359371
360- .content-text :deep(ul :first-child ),
361- .content-text :deep(ol :first-child ) {
362- margin-top : 0 ;
372+ /* List item strong text */
373+ .content-text :deep(li strong ) {
374+ color : #fff ;
375+ font-size : 14px ;
376+ display : block ;
377+ margin-bottom : 4px ;
363378}
364379
365- .content-text :deep(ul :last-child ),
366- .content-text :deep( ol :last-child ) {
380+ .content-text :deep(li p ) {
381+ font-size : 12 px ;
367382 margin-bottom : 0 ;
383+ line-height : 2 ;
384+ }
385+
386+ /* Code styling */
387+ .content-text :deep(code ) {
388+ background-color : #2a2a2a ;
389+ border : 1px solid #4a4a4a ;
390+ border-radius : 4px ;
391+ padding : 2px 6px ;
392+ color : #f8f8f2 ;
393+ white-space : nowrap ;
368394}
369395
370396/* Remove top margin for first media element */
371397.content-text :deep(img :first-child ),
372398.content-text :deep(video :first-child ),
373399.content-text :deep(iframe :first-child ) {
374400 margin-top : -32px ; /* Align with the top edge of the popup content */
375- margin-bottom : 12 px ;
401+ margin-bottom : 24 px ;
376402}
377403
378404/* Media elements */
@@ -381,8 +407,7 @@ defineExpose({
381407.content-text :deep(iframe ) {
382408 width : calc (100% + 64px );
383409 height : auto ;
384- border-radius : 6px ;
385- margin : 12px -32px ;
410+ margin : 24px -32px ;
386411 display : block ;
387412}
388413
@@ -397,7 +422,6 @@ defineExpose({
397422.learn-more-link {
398423 color : #60a5fa ;
399424 font-size : 14px ;
400- font-family : ' Inter' , sans-serif ;
401425 font-weight : 500 ;
402426 line-height : 18.2px ;
403427 text-decoration : none ;
@@ -417,7 +441,6 @@ defineExpose({
417441 border : none ;
418442 color : #121212 ;
419443 font-size : 14px ;
420- font-family : ' Inter' , sans-serif ;
421444 font-weight : 500 ;
422445 cursor : pointer ;
423446}
0 commit comments