wip bsky client for the web & android
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: about modal in settings page

willow 5113202e aedb3dfd

+194 -11
+1 -1
src/App.vue
··· 36 36 } 37 37 38 38 const onIntroComplete = (action: 'stay' | 'login') => { 39 - localStorage.setItem('bluebell-intro-complete', 'false') 39 + localStorage.setItem('bluebell-intro-complete', 'true') 40 40 showIntro.value = false 41 41 nav.init() 42 42
+1 -1
src/assets/icons/bluebell.svg
··· 1 - <svg width="2048" height="2048" viewBox="0 0 2048 2048" fill="none" xmlns="http://www.w3.org/2000/svg"> 1 + <svg width="24" height="24" viewBox="0 0 2048 2048" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 2 <path d="M987.563 1947C987.563 1781.17 931.206 1421.28 907.606 1321.98M910.736 1335.59C668.562 262.68 1109.08 -180.576 1208 282.138" stroke="currentColor" stroke-width="88" stroke-linecap="round"/> 3 3 <path d="M617.738 666.068C606.197 729.561 509.353 829.454 495.303 825.304C486.773 822.784 480.806 716.134 486.773 680.178C497.311 616.685 514.011 571.201 553.51 556.216C598.67 539.083 633.78 577.812 617.738 666.068Z" fill="currentColor"/> 4 4 <path d="M556.329 589.832C551.514 598.531 554.661 609.484 563.358 614.296C572.055 619.108 583.009 615.956 587.824 607.257L572.076 598.545L556.329 589.832ZM572.076 598.545L587.824 607.257C613.283 561.261 638.617 543.859 659.909 539.252C681.48 534.584 704.062 541.903 726.334 556.669C748.482 571.353 768.083 591.977 782.398 609.457C789.483 618.108 795.116 625.795 798.957 631.289C800.875 634.032 802.34 636.218 803.308 637.691C803.792 638.428 804.151 638.985 804.381 639.345C804.495 639.524 804.578 639.654 804.627 639.732C804.651 639.771 804.667 639.797 804.675 639.809C804.679 639.815 804.681 639.818 804.681 639.818C804.681 639.818 804.679 639.815 804.679 639.815C804.676 639.811 804.674 639.806 819.956 630.291C835.239 620.775 835.235 620.769 835.23 620.762C835.228 620.758 835.223 620.75 835.219 620.743C835.21 620.729 835.199 620.712 835.186 620.691C835.16 620.649 835.125 620.593 835.081 620.524C834.994 620.386 834.873 620.195 834.719 619.954C834.41 619.471 833.968 618.784 833.396 617.915C832.254 616.176 830.595 613.701 828.462 610.65C824.2 604.556 818.018 596.122 810.253 586.64C794.868 567.854 772.634 544.165 746.234 526.662C719.958 509.241 687.282 496.498 652.308 504.066C617.056 511.694 584.56 538.826 556.329 589.832L572.076 598.545Z" fill="currentColor"/>
+1 -1
src/assets/icons/tangled.svg
··· 1 - <svg version="1.1" id="svg1" width="24.122343" height="23.274094" viewBox="0 0 24.122343 23.274094" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> 1 + <svg version="1.1" id="svg1" width="24.122343" height="23.274094" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> 2 2 <g id="g1" transform="translate(-0.4388285,-0.8629527)"> 3 3 <path style="fill:currentColor;fill-opacity:1;stroke-width:0.111;stroke-dasharray:none" d="m 16.348974,24.09935 -0.06485,-0.03766 -0.202005,-0.0106 -0.202008,-0.01048 -0.275736,-0.02601 -0.275734,-0.02602 v -0.02649 -0.02648 l -0.204577,-0.04019 -0.204578,-0.04019 -0.167616,-0.08035 -0.167617,-0.08035 -0.0014,-0.04137 -0.0014,-0.04137 -0.266473,-0.143735 -0.266475,-0.143735 -0.276098,-0.20335 -0.2761,-0.203347 -0.262064,-0.251949 -0.262064,-0.25195 -0.22095,-0.284628 -0.220948,-0.284629 -0.170253,-0.284631 -0.170252,-0.284628 -0.01341,-0.0144 -0.0134,-0.0144 -0.141982,0.161297 -0.14198,0.1613 -0.22313,0.21426 -0.223132,0.214264 -0.186025,0.146053 -0.186023,0.14605 -0.252501,0.163342 -0.252502,0.163342 -0.249014,0.115348 -0.249013,0.115336 0.0053,0.03241 0.0053,0.03241 -0.1716725,0.04599 -0.171669,0.046 -0.3379966,0.101058 -0.3379972,0.101058 -0.1778925,0.04506 -0.1778935,0.04508 -0.3913655,0.02601 -0.3913643,0.02603 -0.3557868,-0.03514 -0.3557863,-0.03514 -0.037426,-0.03029 -0.037427,-0.03029 -0.076924,0.02011 -0.076924,0.02011 -0.050508,-0.05051 -0.050405,-0.05056 L 6.6604532,23.110188 6.451745,23.063961 6.1546135,22.960559 5.8574835,22.857156 5.5319879,22.694039 5.2064938,22.530922 4.8793922,22.302961 4.5522905,22.075005 4.247598,21.786585 3.9429055,21.49817 3.7185335,21.208777 3.4941628,20.919385 3.3669822,20.705914 3.239803,20.492443 3.1335213,20.278969 3.0272397,20.065499 2.9015252,19.7275 2.7758105,19.389504 2.6925225,18.998139 2.6092345,18.606774 2.6096814,17.91299 2.6101284,17.219208 2.6744634,16.90029 2.7387984,16.581374 2.8474286,16.242088 2.9560588,15.9028 3.1137374,15.583492 3.2714148,15.264182 3.3415068,15.150766 3.4115988,15.03735 3.3127798,14.96945 3.2139618,14.90157 3.0360685,14.800239 2.8581753,14.698908 2.5913347,14.503228 2.3244955,14.307547 2.0621238,14.055599 1.7997507,13.803651 1.6111953,13.56878 1.4226411,13.333906 1.2632237,13.087474 1.1038089,12.841042 0.97442,12.575195 0.8450307,12.30935 0.724603,11.971351 0.6041766,11.633356 0.52150365,11.241991 0.4388285,10.850626 0.44091592,10.156842 0.44300333,9.4630594 0.54235911,9.0369608 0.6417149,8.6108622 0.7741173,8.2694368 0.9065196,7.9280115 1.0736303,7.6214262 1.2407515,7.3148397 1.45931,7.0191718 1.6778685,6.7235039 1.9300326,6.4611321 2.1821966,6.1987592 2.4134579,6.0137228 2.6447193,5.8286865 2.8759792,5.6776409 3.1072406,5.526594 3.4282004,5.3713977 3.7491603,5.2162016 3.9263009,5.1508695 4.1034416,5.0855373 4.2813348,4.7481598 4.4592292,4.4107823 4.6718,4.108422 4.8843733,3.8060618 5.198353,3.4805372 5.5123313,3.155014 5.7685095,2.9596425 6.0246877,2.7642722 6.329187,2.5851365 6.6336863,2.406002 6.9497657,2.2751596 7.2658453,2.1443184 7.4756394,2.0772947 7.6854348,2.01027 8.0825241,1.931086 8.4796139,1.851902 l 0.5870477,0.00291 0.5870469,0.00291 0.4447315,0.092455 0.444734,0.092455 0.302419,0.1105495 0.302417,0.1105495 0.329929,0.1646046 0.32993,0.1646033 0.239329,-0.2316919 0.239329,-0.2316919 0.160103,-0.1256767 0.160105,-0.1256767 0.160102,-0.1021909 0.160105,-0.1021899 0.142315,-0.082328 0.142314,-0.082328 0.231262,-0.1090091 0.231259,-0.1090091 0.26684,-0.098743 0.266839,-0.098743 0.320208,-0.073514 0.320209,-0.073527 0.355787,-0.041833 0.355785,-0.041834 0.426942,0.023827 0.426945,0.023828 0.355785,0.071179 0.355788,0.0711791 0.284627,0.09267 0.284629,0.09267 0.28514,0.1310267 0.28514,0.1310255 0.238179,0.1446969 0.238174,0.1446979 0.259413,0.1955332 0.259413,0.1955319 0.290757,0.296774 0.290758,0.2967753 0.151736,0.1941581 0.151734,0.1941594 0.135326,0.2149951 0.135327,0.2149952 0.154755,0.3202073 0.154758,0.3202085 0.09409,0.2677358 0.09409,0.267737 0.06948,0.3319087 0.06948,0.3319099 0.01111,0.00808 0.01111,0.00808 0.444734,0.2173653 0.444734,0.2173665 0.309499,0.2161102 0.309497,0.2161101 0.309694,0.2930023 0.309694,0.2930037 0.18752,0.2348726 0.187524,0.2348727 0.166516,0.2574092 0.166519,0.2574108 0.15273,0.3260252 0.152734,0.3260262 0.08972,0.2668403 0.08971,0.2668391 0.08295,0.3913655 0.08295,0.3913652 -6.21e-4,0.6582049 -6.21e-4,0.658204 -0.06362,0.315725 -0.06362,0.315725 -0.09046,0.289112 -0.09046,0.289112 -0.122759,0.281358 -0.12276,0.281356 -0.146626,0.252323 -0.146629,0.252322 -0.190443,0.258668 -0.190448,0.258671 -0.254911,0.268356 -0.254911,0.268355 -0.286872,0.223127 -0.286874,0.223127 -0.320203,0.187693 -0.320209,0.187693 -0.04347,0.03519 -0.04347,0.03521 0.0564,0.12989 0.0564,0.129892 0.08728,0.213472 0.08728,0.213471 0.189755,0.729363 0.189753,0.729362 0.0652,0.302417 0.0652,0.302419 -0.0018,0.675994 -0.0018,0.675995 -0.0801,0.373573 -0.08009,0.373577 -0.09,0.266839 -0.09,0.26684 -0.190389,0.391364 -0.19039,0.391366 -0.223169,0.320207 -0.223167,0.320209 -0.303585,0.315294 -0.303584,0.315291 -0.284631,0.220665 -0.284629,0.220663 -0.220128,0.132359 -0.220127,0.132358 -0.242395,0.106698 -0.242394,0.106699 -0.08895,0.04734 -0.08895,0.04733 -0.249052,0.07247 -0.24905,0.07247 -0.322042,0.0574 -0.322044,0.0574 -0.282794,-0.003 -0.282795,-0.003 -0.07115,-0.0031 -0.07115,-0.0031 -0.177894,-0.0033 -0.177893,-0.0033 -0.124528,0.02555 -0.124528,0.02555 z m -4.470079,-5.349839 0.214838,-0.01739 0.206601,-0.06782 0.206602,-0.06782 0.244389,-0.117874 0.244393,-0.11786 0.274473,-0.206822 0.27447,-0.20682 0.229308,-0.257201 0.229306,-0.2572 0.219161,-0.28463 0.219159,-0.284629 0.188541,-0.284628 0.188543,-0.28463 0.214594,-0.373574 0.214593,-0.373577 0.133861,-0.312006 0.133865,-0.312007 0.02861,-0.01769 0.02861,-0.01769 0.197275,0.26212 0.197278,0.262119 0.163613,0.150814 0.163614,0.150814 0.201914,0.09276 0.201914,0.09276 0.302417,0.01421 0.302418,0.01421 0.213472,-0.08025 0.213471,-0.08025 0.200606,-0.204641 0.200606,-0.204642 0.09242,-0.278887 0.09241,-0.278888 0.05765,-0.302418 0.05764,-0.302416 L 18.41327,13.768114 18.39502,13.34117 18.31849,12.915185 18.24196,12.4892 18.15595,12.168033 18.06994,11.846867 17.928869,11.444534 17.787801,11.042201 17.621278,10.73296 17.454757,10.423723 17.337388,10.263619 17.220021,10.103516 17.095645,9.9837986 16.971268,9.8640816 16.990048,9.6813736 17.008828,9.4986654 16.947568,9.249616 16.886308,9.0005655 16.752419,8.7159355 16.618521,8.4313217 16.435707,8.2294676 16.252892,8.0276114 16.079629,7.9004245 15.906366,7.773238 l -0.20429,0.1230127 -0.204289,0.1230121 -0.26702,0.059413 -0.267022,0.059413 -0.205761,-0.021508 -0.205766,-0.021508 -0.23495,-0.08844 -0.234953,-0.08844 -0.118429,-0.090334 -0.118428,-0.090333 h -0.03944 -0.03944 L 13.711268,7.8540732 13.655958,7.9706205 13.497227,8.1520709 13.338499,8.3335203 13.168394,8.4419112 12.998289,8.550301 12.777045,8.624223 12.5558,8.698155 H 12.275611 11.995429 L 11.799973,8.6309015 11.604513,8.5636472 11.491311,8.5051061 11.37811,8.446565 11.138172,8.2254579 10.898231,8.0043497 l -0.09565,-0.084618 -0.09565,-0.084613 -0.218822,0.198024 -0.218822,0.1980231 -0.165392,0.078387 -0.1653925,0.078387 -0.177894,0.047948 -0.177892,0.047948 L 9.3635263,8.4842631 9.144328,8.4846889 8.9195029,8.4147138 8.6946778,8.3447386 8.5931214,8.4414036 8.491565,8.5380686 8.3707618,8.7019598 8.2499597,8.8658478 8.0802403,8.9290726 7.9105231,8.9922974 7.7952769,9.0780061 7.6800299,9.1637148 7.5706169,9.2778257 7.4612038,9.3919481 7.1059768,9.9205267 6.7507497,10.449105 l -0.2159851,0.449834 -0.2159839,0.449834 -0.2216572,0.462522 -0.2216559,0.462523 -0.1459343,0.337996 -0.1459342,0.337998 -0.055483,0.220042 -0.055483,0.220041 -0.015885,0.206903 -0.015872,0.206901 0.034307,0.242939 0.034307,0.24294 0.096281,0.196632 0.096281,0.196634 0.143607,0.125222 0.1436071,0.125222 0.1873143,0.08737 0.1873141,0.08737 0.2752084,0.002 0.2752084,0.002 0.2312297,-0.09773 0.231231,-0.09772 0.1067615,-0.07603 0.1067614,-0.07603 0.3679062,-0.29377 0.3679065,-0.293771 0.026804,0.01656 0.026804,0.01656 0.023626,0.466819 0.023626,0.466815 0.088326,0.513195 0.088326,0.513193 0.08897,0.364413 0.08897,0.364411 0.1315362,0.302418 0.1315352,0.302418 0.1051964,0.160105 0.1051954,0.160103 0.1104741,0.11877 0.1104731,0.118769 0.2846284,0.205644 0.2846305,0.205642 0.144448,0.07312 0.144448,0.07312 0.214787,0.05566 0.214787,0.05566 0.245601,0.03075 0.245602,0.03075 0.204577,-0.0125 0.204578,-0.0125 z m 0.686342,-3.497495 -0.11281,-0.06077 -0.106155,-0.134033 -0.106155,-0.134031 -0.04406,-0.18371 -0.04406,-0.183707 0.02417,-0.553937 0.02417,-0.553936 0.03513,-0.426945 0.03513,-0.426942 0.07225,-0.373576 0.07225,-0.373575 0.05417,-0.211338 0.05417,-0.211339 0.0674,-0.132112 0.0674,-0.132112 0.132437,-0.10916 0.132437,-0.109161 0.187436,-0.04195 0.187438,-0.04195 0.170366,0.06469 0.170364,0.06469 0.114312,0.124073 0.114313,0.124086 0.04139,0.18495 0.04139,0.184951 -0.111218,0.459845 -0.111219,0.459844 -0.03383,0.26584 -0.03382,0.265841 -0.03986,0.818307 -0.03986,0.818309 -0.0378,0.15162 -0.03779,0.151621 -0.11089,0.110562 -0.110891,0.110561 -0.114489,0.04913 -0.114489,0.04913 -0.187932,-0.0016 -0.187929,-0.0016 z m -2.8087655,-0.358124 -0.146445,-0.06848 -0.088025,-0.119502 -0.088024,-0.119502 -0.038581,-0.106736 -0.038581,-0.106736 -0.02237,-0.134956 -0.02239,-0.134957 -0.031955,-0.46988 -0.031955,-0.469881 0.036203,-0.444733 0.036203,-0.444731 0.048862,-0.215257 0.048862,-0.215255 0.076082,-0.203349 0.076081,-0.203348 0.0936,-0.111244 0.0936,-0.111245 0.143787,-0.06531 0.1437865,-0.06532 h 0.142315 0.142314 l 0.142314,0.06588 0.142316,0.06588 0.093,0.102325 0.093,0.102325 0.04042,0.120942 0.04042,0.120942 v 0.152479 0.152477 l -0.03347,0.08804 -0.03347,0.08805 -0.05693,0.275653 -0.05693,0.275651 2.11e-4,0.430246 2.12e-4,0.430243 0.04294,0.392646 0.04295,0.392647 -0.09189,0.200702 -0.09189,0.200702 -0.148688,0.0984 -0.148687,0.0984 -0.20136,0.01212 -0.2013595,0.01212 z" id="path4"/> 4 4 </g>
+191 -8
src/views/SettingsPage.vue
··· 1 1 <script lang="ts" setup> 2 2 import { ref, computed } from 'vue' 3 3 import { useThemeStore, AccentColours } from '@/stores/theme' 4 - import { useEnvironmentStore } from '@/stores/environment' 5 4 import { useNavigationStore } from '@/stores/navigation' 6 5 import { useAuthStore } from '@/stores/auth' 7 6 8 - import AppLink from '@/components/Navigation/AppLink.vue' 9 7 import PageLayout from '@/components/Navigation/PageLayout.vue' 10 8 import ListGroup from '@/components/UI/ListGroup.vue' 11 9 import ListItem from '@/components/UI/ListItem.vue' 12 10 import ToggleSwitch from '@/components/UI/ToggleSwitch.vue' 13 11 import Modal from '@/components/UI/BaseModal.vue' 14 12 import Button from '@/components/UI/BaseButton.vue' 13 + import AppLink from '@/components/Navigation/AppLink.vue' 15 14 16 15 import { 17 16 IconPaletteOutline, ··· 23 22 IconCheckRounded, 24 23 IconLoginRounded, 25 24 IconLogoutRounded, 25 + IconCodeRounded, 26 + IconBugReportRounded, 27 + IconFavoriteRounded, 26 28 } from '@iconify-prerendered/vue-material-symbols' 29 + 27 30 import tangledLogo from '@/assets/icons/tangled.svg?raw' 31 + import bluebellLogo from '@/assets/icons/bluebell.svg?raw' 28 32 29 33 const appVersion = __APP_VERSION__ 30 34 31 35 const themeStore = useThemeStore() 32 - const env = useEnvironmentStore() 33 36 const nav = useNavigationStore() 34 37 const auth = useAuthStore() 35 38 36 39 const showThemeModal = ref(false) 37 40 const showAccentModal = ref(false) 41 + const showAboutModal = ref(false) 38 42 39 43 const currentThemeLabel = computed(() => { 40 44 if (themeStore.followSystem) return 'System Default' ··· 137 141 <ListGroup title="General"> 138 142 <ListItem 139 143 title="Source Code" 140 - href="https://tangled.org/thkt.app" 144 + href="https://github.com/tangled-group/bluebell" 141 145 target="_blank" 142 146 rel="noopener" 143 147 > 144 148 <template #start><div style="display: flex" v-html="tangledLogo" /></template> 145 149 <template #end><IconOpenInBrowserRounded class="chevron" /></template> 146 150 </ListItem> 151 + <ListItem title="About Bluebell" clickable @click="showAboutModal = true"> 152 + <template #start><div style="display: flex" v-html="bluebellLogo" /></template> 153 + <template #end><IconChevronRightRounded class="chevron" /></template> 154 + </ListItem> 147 155 <ListItem title="Version"> 148 156 <template #start><IconInfoOutlineRounded /></template> 149 157 <template #end ··· 152 160 </ListItem> 153 161 </ListGroup> 154 162 163 + <!-- modals --> 155 164 <Modal v-model:open="showThemeModal" title="Select Theme" width="640px"> 156 - <div class="theme-modal-scroll"> 165 + <div class="theme-modal"> 157 166 <div class="theme-section"> 158 167 <div class="section-header">Light Mode</div> 159 168 <div class="palette-grid"> ··· 235 244 </Modal> 236 245 237 246 <Modal v-model:open="showAccentModal" title="Accent Colour" width="640px"> 238 - <div class="accent-grid"> 247 + <div class="accent-modal"> 239 248 <button 240 249 v-for="colour in AccentColours" 241 250 :key="colour" ··· 254 263 <Button variant="primary" @click="showAccentModal = false">Done</Button> 255 264 </template> 256 265 </Modal> 266 + 267 + <Modal v-model:open="showAboutModal" title="About" width="480px"> 268 + <div class="about-modal"> 269 + <div class="about-header"> 270 + <div class="about-logo" v-html="bluebellLogo"></div> 271 + <div class="about-title-row"> 272 + <h2 class="app-name">Bluebell</h2> 273 + <span class="version-badge">v{{ appVersion }}</span> 274 + </div> 275 + <p class="about-desc">A beautiful and fast client for the Atmosphere & Bluesky.</p> 276 + </div> 277 + 278 + <div class="about-actions"> 279 + <a 280 + href="https://tangled.sh/wlo.moe/bluebell" 281 + target="_blank" 282 + rel="noopener" 283 + class="action-card" 284 + > 285 + <IconCodeRounded class="action-icon" /> 286 + <span>Source</span> 287 + </a> 288 + <a 289 + href="https://tangled.sh/wlo.moe/bluebell/issues" 290 + target="_blank" 291 + rel="noopener" 292 + class="action-card" 293 + > 294 + <IconBugReportRounded class="action-icon" /> 295 + <span>Issues</span> 296 + </a> 297 + </div> 298 + 299 + <div class="about-credits"> 300 + <p> 301 + Created by 302 + <AppLink name="profile" :params="{ identifier: 'wlo.moe' }" class="credit-link"> 303 + @wlo.moe 304 + </AppLink> 305 + </p> 306 + <p class="tech-stack"> 307 + Powered by Vue 3, Pinia & ATCute. <br /> 308 + <span class="heart"><IconFavoriteRounded /></span> 309 + </p> 310 + </div> 311 + </div> 312 + <template #footer> 313 + <Button variant="primary" @click="showAboutModal = false">Close</Button> 314 + </template> 315 + </Modal> 257 316 </PageLayout> 258 317 </template> 259 318 ··· 276 335 border: 2px solid hsla(var(--surface2) / 0.5); 277 336 } 278 337 279 - .accent-grid { 338 + .about-modal { 339 + display: flex; 340 + flex-direction: column; 341 + gap: 2rem; 342 + padding: 0.5rem 0; 343 + text-align: center; 344 + 345 + .about-header { 346 + display: flex; 347 + flex-direction: column; 348 + align-items: center; 349 + gap: 1rem; 350 + 351 + .about-logo { 352 + width: 5rem; 353 + height: 5rem; 354 + color: hsl(var(--accent)); 355 + :deep(svg) { 356 + width: 100%; 357 + height: 100%; 358 + } 359 + } 360 + 361 + .about-title-row { 362 + display: flex; 363 + align-items: center; 364 + gap: 0.75rem; 365 + 366 + .app-name { 367 + font-size: 2rem; 368 + font-weight: 800; 369 + color: hsl(var(--text)); 370 + line-height: 1; 371 + } 372 + 373 + .version-badge { 374 + background: hsla(var(--accent) / 0.1); 375 + color: hsl(var(--accent)); 376 + font-size: 0.75rem; 377 + font-weight: 700; 378 + padding: 0.25rem 0.5rem; 379 + border-radius: 99px; 380 + font-family: monospace; 381 + } 382 + } 383 + 384 + .about-desc { 385 + color: hsl(var(--subtext0)); 386 + font-size: 0.95rem; 387 + line-height: 1.5; 388 + max-width: 300px; 389 + } 390 + } 391 + 392 + .about-actions { 393 + display: flex; 394 + justify-content: center; 395 + gap: 0.75rem; 396 + 397 + .action-card { 398 + display: flex; 399 + flex-direction: column; 400 + align-items: center; 401 + justify-content: center; 402 + gap: 0.5rem; 403 + padding: 1rem; 404 + min-width: 8rem; 405 + background: hsla(var(--surface1) / 0.1); 406 + border-radius: var(--radius-md); 407 + text-decoration: none; 408 + color: hsl(var(--text)); 409 + border: 1px solid transparent; 410 + 411 + .action-icon { 412 + font-size: 1.5rem; 413 + color: hsl(var(--accent)); 414 + } 415 + 416 + span { 417 + font-size: 0.8rem; 418 + font-weight: 600; 419 + } 420 + 421 + &:hover { 422 + background: hsla(var(--surface1) / 0.2); 423 + } 424 + &:active { 425 + background: hsla(var(--surface1) / 0.075); 426 + } 427 + } 428 + } 429 + 430 + .about-credits { 431 + display: flex; 432 + flex-direction: column; 433 + gap: 0.5rem; 434 + font-size: 0.9rem; 435 + color: hsl(var(--subtext0)); 436 + 437 + .credit-link { 438 + color: hsl(var(--text)); 439 + font-weight: 600; 440 + text-decoration: none; 441 + &:hover { 442 + text-decoration: underline; 443 + color: hsl(var(--accent)); 444 + } 445 + } 446 + 447 + .tech-stack { 448 + font-size: 0.8rem; 449 + opacity: 0.7; 450 + } 451 + 452 + .heart { 453 + color: hsl(var(--red)); 454 + display: inline-flex; 455 + vertical-align: middle; 456 + margin-top: 0.25rem; 457 + font-size: 1rem; 458 + } 459 + } 460 + } 461 + 462 + .accent-modal { 280 463 display: grid; 281 464 grid-template-columns: repeat(auto-fill, minmax(80px, 1fr)); 282 465 gap: 1rem; ··· 333 516 } 334 517 } 335 518 336 - .theme-modal-scroll { 519 + .theme-modal { 337 520 display: flex; 338 521 flex-direction: column; 339 522 gap: 2rem;