Merge branch 'ui-fixes' into paynyms

This commit is contained in:
julian 2023-01-24 13:34:13 -06:00
commit fcc68ff1da
103 changed files with 1382 additions and 188 deletions

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 76 KiB

View file

@ -0,0 +1,5 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.5 17.5C12.5 17.9193 12.2383 18.3672 11.7695 18.6797C11.3008 18.9922 10.6289 19.1667 10 19.1667C9.33594 19.1667 8.69922 18.9922 8.23047 18.6797C7.76172 18.3672 7.5 17.9193 7.5 17.5H12.5Z" fill="#F95369"/>
<path d="M11.1903 1.98716V2.67947C13.9059 3.2142 15.9519 5.54245 15.9519 8.33331V9.0112C15.9519 10.7095 16.5955 12.3429 17.7561 13.6122L18.0314 13.9114C18.3439 14.254 18.422 14.7372 18.2286 15.1518C18.0351 15.5665 17.611 15.8333 17.1423 15.8333H2.85739C2.38867 15.8333 1.96351 15.5665 1.77148 15.1518C1.57945 14.7372 1.65626 14.254 1.96771 13.9114L2.24359 13.6122C3.40573 12.3429 4.0478 10.7095 4.0478 9.0112V8.33331C4.0478 5.54245 6.06034 3.2142 8.80945 2.67947V1.98716C8.80945 1.35002 9.34141 0.833313 9.99986 0.833313C10.6583 0.833313 11.1903 1.35002 11.1903 1.98716Z" fill="#F95369"/>
<ellipse cx="17.0833" cy="2.91665" rx="2.08333" ry="2.08333" fill="#1276EB"/>
</svg>

After

Width:  |  Height:  |  Size: 987 B

View file

@ -0,0 +1,97 @@
<svg width="360" height="640" viewBox="0 0 360 640" fill="none" xmlns="http://www.w3.org/2000/svg">
<defs>
<radialGradient id="paint0_radial_815_28509" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(445.5 482.5) rotate(90) scale(127.5 399.264)">
<stop stop-color="#FFEEBC"/>
<stop offset="1" stop-color="#FFE377" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint1_radial_815_28509" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(158.5 258.5) rotate(48.43) scale(263.308)">
<stop stop-color="#FE7160"/>
<stop offset="1" stop-color="#FBAF4A" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint2_radial_815_28509" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(11.5 568.5) rotate(-38.0039) scale(136.427)">
<stop stop-color="#F95369"/>
<stop offset="1" stop-color="#F95369" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint3_radial_815_28509" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(149.5 200.5) rotate(90) scale(205.5)">
<stop stop-color="#FED393"/>
<stop offset="1" stop-color="#FED393" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint4_radial_815_28509" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(116 536) rotate(90) scale(242)">
<stop stop-color="#F95369"/>
<stop offset="1" stop-color="#F95369" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint5_radial_815_28509" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(195.5 241.5) rotate(90) scale(127.5)">
<stop stop-color="#FED393"/>
<stop offset="1" stop-color="#FED393" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint6_radial_815_28509" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(-36.5 -11.5) rotate(48.43) scale(336.833)">
<stop stop-color="#FE7160"/>
<stop offset="1" stop-color="#FBAF4A" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint7_radial_815_28509" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(360 -12) rotate(152.509) scale(340.105)">
<stop stop-color="#F95369"/>
<stop offset="1" stop-color="#F95369" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint8_radial_815_28509" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(11 465) rotate(-56.3099) scale(251.858 235.919)">
<stop stop-color="#FED393"/>
<stop offset="1" stop-color="#FED393" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint9_radial_815_28509" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(393 430) rotate(90) scale(200)">
<stop stop-color="#FEAC02"/>
<stop offset="1" stop-color="#FEAC02" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint10_radial_815_28509" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(415.5 658.5) rotate(90) scale(253.5)">
<stop stop-color="#FE7160"/>
<stop offset="1" stop-color="#F95369" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint11_radial_815_28509" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(421 -52) rotate(90) scale(221)">
<stop stop-color="#FEAC02"/>
<stop offset="1" stop-color="#FEAC02" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint12_radial_815_28509" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(-125 501) rotate(90) scale(207)">
<stop stop-color="#FFE9A0"/>
<stop offset="1" stop-color="#FFE9A0" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint13_radial_815_28509" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(145 -74) rotate(-56.3099) scale(191.698 179.566)">
<stop stop-color="#FED393"/>
<stop offset="1" stop-color="#FED393" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint14_radial_815_28509" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(154 678) rotate(90) scale(139)">
<stop stop-color="#FBB44A"/>
<stop offset="1" stop-color="#FDC800" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint15_radial_815_28509" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(222 546) rotate(90) scale(110)">
<stop stop-color="#FBBF4A" stop-opacity="0.5"/>
<stop offset="1" stop-color="#FDC800" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint16_radial_815_28509" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(401 629) rotate(90) scale(223)">
<stop stop-color="#FF6545"/>
<stop offset="1" stop-color="#FDC800" stop-opacity="0"/>
</radialGradient>
<clipPath id="clip0_815_28509">
<rect width="360" height="640" fill="white"/>
</clipPath>
</defs>
<g clip-path="url(#clip0_815_28509)">
<rect width="360" height="640" fill="#FFF9F2"/>
<g opacity="0.25">
<ellipse cx="445.5" cy="482.5" rx="419.5" ry="127.5" fill="url(#paint0_radial_815_28509)"/>
<circle cx="158.5" cy="258.5" r="286.5" fill="url(#paint1_radial_815_28509)"/>
<circle cx="11.5" cy="568.5" r="154.5" fill="url(#paint2_radial_815_28509)"/>
<circle cx="149.5" cy="200.5" r="205.5" fill="url(#paint3_radial_815_28509)"/>
<circle cx="116" cy="536" r="242" fill="url(#paint4_radial_815_28509)"/>
<circle cx="195.5" cy="241.5" r="127.5" fill="url(#paint5_radial_815_28509)"/>
<circle cx="-36.5" cy="-11.5" r="366.5" fill="url(#paint6_radial_815_28509)"/>
<circle cx="360" cy="-12" r="486" fill="url(#paint7_radial_815_28509)"/>
<circle cx="11" cy="465" r="247" fill="url(#paint8_radial_815_28509)"/>
<circle cx="393" cy="430" r="200" fill="url(#paint9_radial_815_28509)"/>
<circle cx="415.5" cy="658.5" r="253.5" fill="url(#paint10_radial_815_28509)"/>
<circle cx="421" cy="-52" r="221" fill="url(#paint11_radial_815_28509)"/>
<circle cx="-125" cy="501" r="207" fill="url(#paint12_radial_815_28509)"/>
<circle cx="145" cy="-74" r="188" fill="url(#paint13_radial_815_28509)"/>
<circle cx="154" cy="678" r="139" fill="url(#paint14_radial_815_28509)"/>
<circle cx="222" cy="546" r="110" fill="url(#paint15_radial_815_28509)"/>
<circle cx="401" cy="629" r="223" fill="url(#paint16_radial_815_28509)"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.1 KiB

View file

@ -0,0 +1,11 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g opacity="0.4">
<path d="M22.2 6C23.3297 5.37187 24 4.59422 24 3.75C24 1.67906 19.9688 0 15 0C9.98906 0 6 1.67906 6 3.75C6 4.59422 6.67031 5.37187 7.8 6C7.80937 6.00469 7.81758 6.00937 7.82578 6.01406C7.83398 6.01875 7.84219 6.02344 7.85156 6.02813C8.23125 6.00938 8.61094 6 9 6C11.6344 6 14.0906 6.44062 15.9422 7.21406C16.1203 7.28906 16.2984 7.36875 16.4672 7.44844C18.8062 7.28906 20.8359 6.75469 22.2 6Z" fill="#232323"/>
<path d="M19.9435 12.9151C19.7958 12.9551 19.6477 12.9951 19.5 13.0359V13.5C20.7602 13.5 21.9296 13.8885 22.8951 14.5522C23.5995 14.0172 24 13.4028 24 12.75V11.0906C23.4141 11.5734 22.7063 11.9672 21.9422 12.2859C21.3382 12.5376 20.6447 12.7253 19.9435 12.9151Z" fill="#232323"/>
<path d="M18.3703 8.74688C19.0031 9.37969 19.5 10.2234 19.5 11.25V11.4984C20.4328 11.2734 21.2625 10.9781 21.9469 10.6359C21.9739 10.6209 22.0009 10.6021 22.0279 10.5833C22.0852 10.5432 22.1426 10.5032 22.2 10.5C23.3297 9.87187 24 9.09375 24 8.25V6.59063C23.4141 7.07344 22.7063 7.46719 21.9422 7.78594C20.9109 8.2125 19.6969 8.54063 18.3703 8.74688Z" fill="#232323"/>
</g>
<path d="M16.2 13.5C17.3297 12.8719 18 12.0938 18 11.25C18 9.17813 13.9688 7.5 9 7.5C4.02938 7.5 0 9.17813 0 11.25C0 12.0938 0.669375 12.8719 1.79953 13.5C1.85443 13.5031 1.91057 13.5415 1.96782 13.5807C1.9966 13.6004 2.02567 13.6203 2.055 13.6359C3.70594 14.4703 6.20625 15 9 15C11.9438 15 14.5594 14.4094 16.2 13.5Z" fill="#232323"/>
<path d="M14.8788 15.6729C13.1948 16.2046 11.1571 16.5 9 16.5C6.36562 16.5 3.91125 16.0594 2.05922 15.2859C1.29469 14.9672 0.583594 14.5734 0 14.0906V15.75C0 16.5938 0.669375 17.3719 1.79953 18C3.44109 18.9094 6.05625 19.5 9 19.5C10.6471 19.5 12.1916 19.3159 13.5211 18.9937C13.6261 17.7367 14.1186 16.5898 14.8788 15.6729Z" fill="#232323"/>
<path d="M13.5862 20.5191C13.7529 21.4936 14.1547 22.3879 14.731 23.1415C13.1742 23.6778 11.1771 24 9 24C4.02938 24 0 22.3219 0 20.25V18.5906C0.583594 19.0734 1.29469 19.4672 2.05922 19.7859C3.91125 20.5594 6.36562 21 9 21C10.6307 21 12.1932 20.8312 13.5862 20.5191Z" fill="#232323"/>
<path d="M24 19.5C24 21.9844 21.9844 24 19.5 24C17.0156 24 15 21.9844 15 19.5C15 17.0156 17.0156 15 19.5 15C21.9844 15 24 17.0156 24 19.5ZM19 17.4719V18.9719H17.5C17.225 18.9719 17 19.225 17 19.4719C17 19.775 17.225 19.9719 17.5 19.9719H19V21.4719C19 21.775 19.225 21.9719 19.5 21.9719C19.775 21.9719 20 21.775 20 21.4719V19.9719H21.5C21.775 19.9719 22 19.775 22 19.4719C22 19.225 21.775 18.9719 21.5 18.9719H20V17.4719C20 17.225 19.775 16.9719 19.5 16.9719C19.225 16.9719 19 17.225 19 17.4719Z" fill="#232323"/>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View file

@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.6695 1.06575C15.1855 0.607104 15.9756 0.65358 16.4343 1.16956L20.4343 5.66956C20.8552 6.14317 20.8552 6.85686 20.4343 7.33047L16.4343 11.8305C15.9756 12.3464 15.1855 12.3929 14.6695 11.9343C14.1536 11.4756 14.1071 10.6855 14.5657 10.1696L16.7164 7.75001H6C4.48122 7.75001 3.25 8.98123 3.25 10.5C3.25 11.1904 2.69036 11.75 2 11.75C1.30964 11.75 0.75 11.1904 0.75 10.5C0.75 7.60052 3.10051 5.25001 6 5.25001H16.7164L14.5657 2.83047C14.1071 2.31449 14.1536 1.5244 14.6695 1.06575Z" fill="#232323"/>
<path opacity="0.4" fill-rule="evenodd" clip-rule="evenodd" d="M9.33045 23.4342C8.81448 23.8929 8.02439 23.8464 7.56574 23.3304L3.56574 18.8304C3.14475 18.3568 3.14475 17.6431 3.56574 17.1695L7.56574 12.6695C8.02439 12.1536 8.81448 12.1071 9.33046 12.5657C9.84643 13.0244 9.89291 13.8145 9.43426 14.3304L7.28355 16.75L18 16.75C19.5188 16.75 20.75 15.5188 20.75 14C20.75 13.3096 21.3096 12.75 22 12.75C22.6904 12.75 23.25 13.3096 23.25 14C23.25 16.8995 20.8995 19.25 18 19.25L7.28355 19.25L9.43426 21.6695C9.89291 22.1855 9.84643 22.9756 9.33045 23.4342Z" fill="#232323"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1,5 @@
<svg width="70" height="70" viewBox="0 0 70 70" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M41.3715 9.57675C37.2965 7.22564 32.2041 10.1695 32.2041 14.8717C32.2041 19.5739 34.4762 23.6489 38.2004 26.163L53.9717 35.3057L54.0112 35.2908L69.9948 26.0543L41.3715 9.57675Z" fill="#B3B3B3"/>
<path d="M38.2014 26.163C34.4771 23.6489 32.205 19.4159 32.205 14.8717C32.205 12.6342 33.3757 10.7671 35.0402 9.7101C34.9612 9.75455 35.1192 9.66564 35.0402 9.7101L10.0917 23.7279L6.08593 26.1481L3.35449 27.7188C5.07337 26.8446 7.22692 26.7754 9.14831 27.8917L16.0189 31.8037L22.0399 35.2859L38.0236 44.5076L53.9677 35.2958L38.1964 26.1531L38.2014 26.163Z" fill="#666666"/>
<path d="M70 44.5187L38.0278 62.9917L31.992 59.5095L31.9673 59.4848L6.06054 44.5187C4.28733 43.3629 2.84505 41.7872 1.82755 40.014C0.642111 37.9691 0 35.618 0 33.1829C0 30.9899 1.10147 29.1771 2.70181 28.1004C2.91914 27.967 3.13153 27.8435 3.35874 27.725C5.07762 26.8507 7.23116 26.7816 9.15256 27.8979L15.9836 31.8394L22.0047 35.3068L22.0442 35.292L38.0278 44.5137L53.9719 35.3019L70 44.5137V44.5187Z" fill="#232323"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,7 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.4" d="M23.0154 16.7681C23.6489 15.3066 24 13.6943 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24C13.6943 24 15.3066 23.6489 16.7681 23.0154C16.2832 22.2973 16 21.4317 16 20.5C16 18.0147 18.0147 16 20.5 16C21.4317 16 22.2973 16.2832 23.0154 16.7681Z" fill="#0056D2"/>
<path d="M5.30071 12.4C4.91018 12.7905 4.91018 13.4236 5.30071 13.8142C5.69123 14.2047 6.32439 14.2047 6.71492 13.8142L5.30071 12.4ZM13.0789 6.03599L14.0787 6.05567C14.0839 5.78863 13.9821 5.53058 13.796 5.33904C13.6098 5.1475 13.3548 5.03839 13.0877 5.03603L13.0789 6.03599ZM9.00968 5.00004C8.45741 4.99516 8.00576 5.43891 8.00089 5.99117C7.99601 6.54344 8.43976 6.99509 8.99202 6.99996L9.00968 5.00004ZM12.001 9.98032C11.9902 10.5325 12.429 10.9889 12.9812 10.9998C13.5333 11.0107 13.9898 10.5719 14.0007 10.0197L12.001 9.98032ZM18.6429 11.6C19.0334 11.2095 19.0334 10.5764 18.6429 10.1858C18.2524 9.79531 17.6192 9.79531 17.2287 10.1858L18.6429 11.6ZM10.8647 17.964L9.8653 17.9297C9.85604 18.1992 9.95602 18.461 10.1426 18.6557C10.3291 18.8505 10.5864 18.9616 10.856 18.964L10.8647 17.964ZM14.9922 19C15.5444 19.0048 15.996 18.561 16.0008 18.0087C16.0056 17.4564 15.5618 17.0048 15.0096 17L14.9922 19ZM12.0003 14.0343C12.0192 13.4824 11.5871 13.0195 11.0352 13.0006C10.4832 12.9816 10.0204 13.4137 10.0014 13.9657L12.0003 14.0343ZM6.71492 13.8142L13.786 6.7431L12.3718 5.32889L5.30071 12.4L6.71492 13.8142ZM8.99202 6.99996L13.0701 7.03595L13.0877 5.03603L9.00968 5.00004L8.99202 6.99996ZM12.0791 6.01631L12.001 9.98032L14.0007 10.0197L14.0787 6.05567L12.0791 6.01631ZM17.2287 10.1858L10.1576 17.2569L11.5718 18.6711L18.6429 11.6L17.2287 10.1858ZM15.0096 17L10.8734 16.964L10.856 18.964L14.9922 19L15.0096 17ZM11.8641 17.9983L12.0003 14.0343L10.0014 13.9657L9.8653 17.9297L11.8641 17.9983Z" fill="#0056D2"/>
<circle cx="20.5" cy="20.5" r="3.5" fill="#C00205"/>
<path d="M19.4395 19.4395L20.5001 20.5001L21.5608 21.5608" stroke="white" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M19.5 21.5605L20.5607 20.4999L21.6213 19.4392" stroke="white" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View file

@ -0,0 +1,6 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.4" d="M23.0154 16.7681C23.6489 15.3066 24 13.6943 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24C13.6943 24 15.3066 23.6489 16.7681 23.0154C16.2832 22.2973 16 21.4317 16 20.5C16 18.0147 18.0147 16 20.5 16C21.4317 16 22.2973 16.2832 23.0154 16.7681Z" fill="#0056D2"/>
<circle cx="20.5" cy="20.5" r="3.5" fill="#F4C517"/>
<path d="M20.5 19V20.5H21.5" stroke="white" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.30071 12.4C4.91018 12.7905 4.91018 13.4236 5.30071 13.8142C5.69123 14.2047 6.32439 14.2047 6.71492 13.8142L5.30071 12.4ZM13.0789 6.03599L14.0787 6.05567C14.0839 5.78863 13.9821 5.53058 13.796 5.33904C13.6098 5.1475 13.3548 5.03839 13.0877 5.03603L13.0789 6.03599ZM9.00968 5.00004C8.45741 4.99516 8.00576 5.43891 8.00089 5.99117C7.99601 6.54344 8.43976 6.99509 8.99202 6.99996L9.00968 5.00004ZM12.001 9.98032C11.9902 10.5325 12.429 10.9889 12.9812 10.9998C13.5333 11.0107 13.9898 10.5719 14.0007 10.0197L12.001 9.98032ZM18.6429 11.6C19.0334 11.2095 19.0334 10.5764 18.6429 10.1858C18.2524 9.79531 17.6192 9.79531 17.2287 10.1858L18.6429 11.6ZM10.8647 17.964L9.8653 17.9297C9.85605 18.1992 9.95602 18.461 10.1426 18.6557C10.3291 18.8505 10.5864 18.9616 10.856 18.964L10.8647 17.964ZM14.9922 19C15.5444 19.0048 15.996 18.561 16.0008 18.0087C16.0056 17.4564 15.5618 17.0048 15.0096 17L14.9922 19ZM12.0003 14.0343C12.0192 13.4824 11.5871 13.0195 11.0352 13.0006C10.4832 12.9816 10.0204 13.4137 10.0014 13.9657L12.0003 14.0343ZM6.71492 13.8142L13.786 6.7431L12.3718 5.32889L5.30071 12.4L6.71492 13.8142ZM8.99202 6.99996L13.0701 7.03595L13.0877 5.03603L9.00968 5.00004L8.99202 6.99996ZM12.0791 6.01631L12.001 9.98032L14.0007 10.0197L14.0787 6.05567L12.0791 6.01631ZM17.2287 10.1858L10.1576 17.2569L11.5718 18.6711L18.6429 11.6L17.2287 10.1858ZM15.0096 17L10.8734 16.964L10.856 18.964L14.9922 19L15.0096 17ZM11.8641 17.9983L12.0003 14.0343L10.0014 13.9657L9.8653 17.9297L11.8641 17.9983Z" fill="#0056D2"/>
</svg>

After

Width:  |  Height:  |  Size: 2 KiB

View file

@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle opacity="0.4" cx="12" cy="12" r="12" fill="#0056D2"/>
<path d="M5.30071 12.4C4.91018 12.7905 4.91018 13.4236 5.30071 13.8142C5.69123 14.2047 6.32439 14.2047 6.71492 13.8142L5.30071 12.4ZM13.0789 6.03599L14.0787 6.05567C14.0839 5.78863 13.9821 5.53058 13.796 5.33904C13.6098 5.1475 13.3548 5.03839 13.0877 5.03603L13.0789 6.03599ZM9.00968 5.00004C8.45741 4.99516 8.00576 5.43891 8.00089 5.99117C7.99601 6.54344 8.43976 6.99509 8.99202 6.99996L9.00968 5.00004ZM12.001 9.98032C11.9902 10.5325 12.429 10.9889 12.9812 10.9998C13.5333 11.0107 13.9898 10.5719 14.0007 10.0197L12.001 9.98032ZM18.6429 11.6C19.0334 11.2095 19.0334 10.5764 18.6429 10.1858C18.2524 9.79531 17.6192 9.79531 17.2287 10.1858L18.6429 11.6ZM10.8647 17.964L9.8653 17.9297C9.85604 18.1992 9.95602 18.461 10.1426 18.6557C10.3291 18.8505 10.5864 18.9616 10.856 18.964L10.8647 17.964ZM14.9922 19C15.5444 19.0048 15.996 18.561 16.0008 18.0087C16.0056 17.4564 15.5618 17.0048 15.0096 17L14.9922 19ZM12.0003 14.0343C12.0192 13.4824 11.5871 13.0195 11.0352 13.0006C10.4832 12.9816 10.0204 13.4137 10.0014 13.9657L12.0003 14.0343ZM6.71492 13.8142L13.786 6.7431L12.3718 5.32889L5.30071 12.4L6.71492 13.8142ZM8.99202 6.99996L13.0701 7.03595L13.0877 5.03603L9.00968 5.00004L8.99202 6.99996ZM12.0791 6.01631L12.001 9.98032L14.0007 10.0197L14.0787 6.05567L12.0791 6.01631ZM17.2287 10.1858L10.1576 17.2569L11.5718 18.6711L18.6429 11.6L17.2287 10.1858ZM15.0096 17L10.8734 16.964L10.856 18.964L14.9922 19L15.0096 17ZM11.8641 17.9983L12.0003 14.0343L10.0014 13.9657L9.8653 17.9297L11.8641 17.9983Z" fill="#0056D2"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -0,0 +1,7 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.4" fill-rule="evenodd" clip-rule="evenodd" d="M23.0154 16.7681C23.6489 15.3066 24 13.6943 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24C13.6943 24 15.3066 23.6489 16.7681 23.0154C16.2832 22.2973 16 21.4317 16 20.5C16 18.0147 18.0147 16 20.5 16C21.4317 16 22.2973 16.2832 23.0154 16.7681Z" fill="#00A578"/>
<circle cx="20.5" cy="20.5" r="3.5" fill="#C00205"/>
<path d="M16 8L8 16M8 16H14M8 16V10" stroke="#00A578" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M19.4395 19.4395L20.5001 20.5001L21.5608 21.5608" stroke="white" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M19.5 21.5605L20.5607 20.4999L21.6213 19.4392" stroke="white" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 882 B

View file

@ -0,0 +1,5 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.4" d="M23.0154 16.7681C23.6489 15.3066 24 13.6943 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24C13.6943 24 15.3066 23.6489 16.7681 23.0154C16.2832 22.2973 16 21.4317 16 20.5C16 18.0147 18.0147 16 20.5 16C21.4317 16 22.2973 16.2832 23.0154 16.7681Z" fill="#00A578"/>
<path d="M16 8L8 16M8 16H14M8 16V10" stroke="#00A578" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.5 24C22.433 24 24 22.433 24 20.5C24 18.567 22.433 17 20.5 17C18.567 17 17 18.567 17 20.5C17 22.433 18.567 24 20.5 24ZM21 19C21 18.7239 20.7761 18.5 20.5 18.5C20.2239 18.5 20 18.7239 20 19V20.5C20 20.7761 20.2239 21 20.5 21H21.5C21.7761 21 22 20.7761 22 20.5C22 20.2239 21.7761 20 21.5 20H21V19Z" fill="#F4C517"/>
</svg>

After

Width:  |  Height:  |  Size: 912 B

View file

@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle opacity="0.4" cx="12" cy="12" r="12" fill="#00A578"/>
<path d="M16 8L8 16M8 16H14M8 16V10" stroke="#00A578" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 287 B

View file

@ -0,0 +1,7 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.4" d="M23.0154 16.7681C23.6489 15.3066 24 13.6943 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24C13.6943 24 15.3066 23.6489 16.7681 23.0154C16.2832 22.2973 16 21.4317 16 20.5C16 18.0147 18.0147 16 20.5 16C21.4317 16 22.2973 16.2832 23.0154 16.7681Z" fill="#FE805C"/>
<path d="M8 16L16 8M16 8L10 8M16 8L16 14" stroke="#FE805C" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="20.5" cy="20.5" r="3.5" fill="#C00205"/>
<path d="M19.4395 19.4395L20.5001 20.5001L21.5608 21.5608" stroke="white" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M19.5 21.5605L20.5607 20.4999L21.6213 19.4392" stroke="white" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 847 B

View file

@ -0,0 +1,6 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.4" d="M23.0154 16.7681C23.6489 15.3066 24 13.6943 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24C13.6943 24 15.3066 23.6489 16.7681 23.0154C16.2832 22.2973 16 21.4317 16 20.5C16 18.0147 18.0147 16 20.5 16C21.4317 16 22.2973 16.2832 23.0154 16.7681Z" fill="#FE805C"/>
<path d="M8 16L16 8M16 8L10 8M16 8L16 14" stroke="#FE805C" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="20.5" cy="20.5" r="3.5" fill="#F4C517"/>
<path d="M20.5 19V20.5H21.5" stroke="white" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 697 B

View file

@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle opacity="0.4" cx="12" cy="12" r="12" fill="#FE805C"/>
<path d="M8 16L16 8M16 8L10 8M16 8L16 14" stroke="#FE805C" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 292 B

View file

@ -1,16 +0,0 @@
<svg width="180" height="152" viewBox="0 0 180 152" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="180" height="20" rx="2" fill="#77A7F9"/>
<rect x="6" y="6" width="106" height="8" rx="1" fill="black"/>
<rect y="30" width="180" height="20" rx="2" fill="#212F46"/>
<rect x="6" y="36" width="106" height="8" rx="1" fill="black"/>
<rect y="52" width="180" height="20" rx="2" fill="#212F46"/>
<rect x="6" y="58" width="106" height="8" rx="1" fill="black"/>
<rect y="74" width="180" height="20" rx="2" fill="#212F46"/>
<rect x="6" y="80" width="106" height="8" rx="1" fill="black"/>
<rect y="96" width="180" height="20" rx="2" fill="#212F46"/>
<rect x="6" y="102" width="106" height="8" rx="1" fill="black"/>
<rect y="118" width="180" height="20" rx="2" fill="#212F46"/>
<rect x="6" y="124" width="106" height="8" rx="1" fill="black"/>
<rect y="140" width="180" height="20" rx="2" fill="#212F46"/>
<rect x="6" y="146" width="106" height="8" rx="1" fill="black"/>
</svg>

Before

Width:  |  Height:  |  Size: 979 B

@ -1 +1 @@
Subproject commit f1031db5bb67b38d028187f0ead192acb3e9ba55 Subproject commit c1b403ccf6f4fffc9f7c233038c3df40f997c2b3

View file

@ -57,6 +57,7 @@ import 'package:stackwallet/utilities/logger.dart';
import 'package:stackwallet/utilities/stack_file_system.dart'; import 'package:stackwallet/utilities/stack_file_system.dart';
import 'package:stackwallet/utilities/theme/color_theme.dart'; import 'package:stackwallet/utilities/theme/color_theme.dart';
import 'package:stackwallet/utilities/theme/dark_colors.dart'; import 'package:stackwallet/utilities/theme/dark_colors.dart';
import 'package:stackwallet/utilities/theme/fruit_sorbet_colors.dart';
import 'package:stackwallet/utilities/theme/light_colors.dart'; import 'package:stackwallet/utilities/theme/light_colors.dart';
import 'package:stackwallet/utilities/theme/ocean_breeze_colors.dart'; import 'package:stackwallet/utilities/theme/ocean_breeze_colors.dart';
import 'package:stackwallet/utilities/theme/oled_black_colors.dart'; import 'package:stackwallet/utilities/theme/oled_black_colors.dart';
@ -334,8 +335,11 @@ class _MaterialAppWithThemeState extends ConsumerState<MaterialAppWithTheme>
colorTheme = OceanBreezeColors(); colorTheme = OceanBreezeColors();
break; break;
case "light": case "light":
default:
colorTheme = LightColors(); colorTheme = LightColors();
break;
case "fruitSorbet":
default:
colorTheme = FruitSorbetColors();
} }
loadingCompleter = Completer(); loadingCompleter = Completer();
WidgetsBinding.instance.addObserver(this); WidgetsBinding.instance.addObserver(this);

View file

@ -38,10 +38,10 @@ class AddWalletNextButton extends ConsumerWidget {
style: enabled style: enabled
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context) .getPrimaryEnabledButtonStyle(context)
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryDisabledButtonColor(context), .getPrimaryDisabledButtonStyle(context),
child: Text( child: Text(
"Next", "Next",
style: isDesktop style: isDesktop

View file

@ -30,7 +30,7 @@ class CreateWalletButtonGroup extends StatelessWidget {
child: TextButton( child: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
onPressed: () { onPressed: () {
Navigator.of(context).pushNamed( Navigator.of(context).pushNamed(
NameYourWalletView.routeName, NameYourWalletView.routeName,
@ -59,7 +59,7 @@ class CreateWalletButtonGroup extends StatelessWidget {
child: TextButton( child: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
onPressed: () { onPressed: () {
Navigator.of(context).pushNamed( Navigator.of(context).pushNamed(
NameYourWalletView.routeName, NameYourWalletView.routeName,

View file

@ -364,10 +364,10 @@ class _NameYourWalletViewState extends ConsumerState<NameYourWalletView> {
style: _nextEnabled style: _nextEnabled
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context) .getPrimaryEnabledButtonStyle(context)
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryDisabledButtonColor(context), .getPrimaryDisabledButtonStyle(context),
child: Text( child: Text(
"Next", "Next",
style: isDesktop style: isDesktop

View file

@ -298,7 +298,7 @@ class _NewWalletRecoveryPhraseViewState
}, },
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
child: Text( child: Text(
"I saved my recovery phrase", "I saved my recovery phrase",
style: isDesktop style: isDesktop

View file

@ -512,10 +512,10 @@ class _NewWalletRecoveryPhraseWarningViewState
style: ref.read(checkBoxStateProvider.state).state style: ref.read(checkBoxStateProvider.state).state
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context) .getPrimaryEnabledButtonStyle(context)
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryDisabledButtonColor(context), .getPrimaryDisabledButtonStyle(context),
child: Text( child: Text(
"View recovery phrase", "View recovery phrase",
style: isDesktop style: isDesktop

View file

@ -23,10 +23,10 @@ class RestoreOptionsNextButton extends StatelessWidget {
style: onPressed != null style: onPressed != null
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context) .getPrimaryEnabledButtonStyle(context)
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryDisabledButtonColor(context), .getPrimaryDisabledButtonStyle(context),
child: Text( child: Text(
"Next", "Next",
style: STextStyles.button(context), style: STextStyles.button(context),

View file

@ -47,7 +47,7 @@ class _RestoreFailedDialogState extends ConsumerState<RestoreFailedDialog> {
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Ok", "Ok",
style: STextStyles.itemSubtitle12(context), style: STextStyles.itemSubtitle12(context),

View file

@ -80,7 +80,7 @@ class RestoreSucceededDialog extends StatelessWidget {
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Ok", "Ok",
style: STextStyles.itemSubtitle12(context), style: STextStyles.itemSubtitle12(context),

View file

@ -139,7 +139,7 @@ class _RestoringDialogState extends State<RestoringDialog>
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Cancel", "Cancel",
style: STextStyles.itemSubtitle12(context), style: STextStyles.itemSubtitle12(context),

View file

@ -331,10 +331,10 @@ class _VerifyRecoveryPhraseViewState
style: selectedWord.isNotEmpty style: selectedWord.isNotEmpty
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context) .getPrimaryEnabledButtonStyle(context)
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryDisabledButtonColor(context), .getPrimaryDisabledButtonStyle(context),
child: isDesktop child: isDesktop
? Text( ? Text(
"Verify", "Verify",

View file

@ -177,7 +177,7 @@ class _ContactDetailsViewState extends ConsumerState<ContactDetailsView> {
leftButton: TextButton( leftButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Cancel", "Cancel",
style: STextStyles.itemSubtitle12(context), style: STextStyles.itemSubtitle12(context),
@ -189,7 +189,7 @@ class _ContactDetailsViewState extends ConsumerState<ContactDetailsView> {
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
child: Text( child: Text(
"Delete", "Delete",
style: STextStyles.button(context), style: STextStyles.button(context),
@ -273,7 +273,7 @@ class _ContactDetailsViewState extends ConsumerState<ContactDetailsView> {
}, },
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context)! .getSecondaryEnabledButtonStyle(context)!
.copyWith( .copyWith(
minimumSize: MaterialStateProperty.all<Size>( minimumSize: MaterialStateProperty.all<Size>(
const Size(46, 32)), const Size(46, 32)),

View file

@ -148,7 +148,7 @@ class ContactPopUp extends ConsumerWidget {
}, },
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor( .getSecondaryEnabledButtonStyle(
context)! context)!
.copyWith( .copyWith(
minimumSize: minimumSize:

View file

@ -135,7 +135,7 @@ class _ConfirmChangeNowSendViewState
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Ok", "Ok",
style: STextStyles.button(context).copyWith( style: STextStyles.button(context).copyWith(

View file

@ -136,7 +136,7 @@ class _EditNoteViewState extends ConsumerState<EditTradeNoteView> {
}, },
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
child: Text( child: Text(
"Save", "Save",
style: STextStyles.button(context), style: STextStyles.button(context),

View file

@ -144,7 +144,6 @@ class _ExchangeFormState extends ConsumerState<ExchangeForm> {
await Future<void>.delayed(const Duration(milliseconds: 300)); await Future<void>.delayed(const Duration(milliseconds: 300));
Navigator.of(context, rootNavigator: true).pop(); Navigator.of(context, rootNavigator: true).pop();
} else { } else {
final toTicker = ref.read(exchangeFormStateProvider).toTicker ?? ""; final toTicker = ref.read(exchangeFormStateProvider).toTicker ?? "";
final fromTicker = ref.read(exchangeFormStateProvider).fromTicker ?? ""; final fromTicker = ref.read(exchangeFormStateProvider).fromTicker ?? "";
@ -1017,7 +1016,7 @@ class _ExchangeFormState extends ConsumerState<ExchangeForm> {
leftButton: TextButton( leftButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Cancel", "Cancel",
style: STextStyles.itemSubtitle12(context), style: STextStyles.itemSubtitle12(context),
@ -1030,7 +1029,7 @@ class _ExchangeFormState extends ConsumerState<ExchangeForm> {
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
child: Text( child: Text(
"Attempt", "Attempt",
style: STextStyles.button(context), style: STextStyles.button(context),

View file

@ -91,7 +91,7 @@ class _ExchangeLoadingOverlayViewState
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"OK", "OK",
style: STextStyles.button(context).copyWith( style: STextStyles.button(context).copyWith(

View file

@ -188,7 +188,7 @@ class _Step1ViewState extends State<Step1View> {
}, },
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
child: Text( child: Text(
"Next", "Next",
style: STextStyles.button(context), style: STextStyles.button(context),

View file

@ -698,7 +698,7 @@ class _Step2ViewState extends ConsumerState<Step2View> {
}, },
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Back", "Back",
style: STextStyles.button(context).copyWith( style: STextStyles.button(context).copyWith(

View file

@ -208,7 +208,7 @@ class _Step3ViewState extends ConsumerState<Step3View> {
}, },
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Back", "Back",
style: STextStyles.button(context).copyWith( style: STextStyles.button(context).copyWith(
@ -322,7 +322,7 @@ class _Step3ViewState extends ConsumerState<Step3View> {
}, },
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
child: Text( child: Text(
"Next", "Next",
style: STextStyles.button(context), style: STextStyles.button(context),

View file

@ -426,7 +426,7 @@ class _Step4ViewState extends ConsumerState<Step4View> {
Navigator.of(context).pop(), Navigator.of(context).pop(),
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor( .getSecondaryEnabledButtonStyle(
context), context),
child: Text( child: Text(
"Cancel", "Cancel",
@ -451,7 +451,7 @@ class _Step4ViewState extends ConsumerState<Step4View> {
}, },
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
child: Text( child: Text(
"Show QR Code", "Show QR Code",
style: STextStyles.button(context), style: STextStyles.button(context),
@ -578,7 +578,7 @@ class _Step4ViewState extends ConsumerState<Step4View> {
style: Theme.of(context) style: Theme.of(context)
.extension< .extension<
StackColors>()! StackColors>()!
.getSecondaryEnabledButtonColor( .getSecondaryEnabledButtonStyle(
context), context),
child: Text( child: Text(
"Ok", "Ok",
@ -628,7 +628,7 @@ class _Step4ViewState extends ConsumerState<Step4View> {
}, },
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
buttonTitle, buttonTitle,
style: STextStyles.button(context).copyWith( style: STextStyles.button(context).copyWith(

View file

@ -338,7 +338,7 @@ class _SendFromCardState extends ConsumerState<SendFromCard> {
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Ok", "Ok",
style: STextStyles.button(context).copyWith( style: STextStyles.button(context).copyWith(

View file

@ -713,7 +713,7 @@ class _TradeDetailsViewState extends ConsumerState<TradeDetailsView> {
}, },
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor( .getSecondaryEnabledButtonStyle(
context), context),
child: Text( child: Text(
"Cancel", "Cancel",

View file

@ -275,11 +275,16 @@ class _HomeViewState extends ConsumerState<HomeView> {
color: Theme.of(context) color: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.backgroundAppBar, .backgroundAppBar,
boxShadow: [ boxShadow: Theme.of(context)
.extension<StackColors>()!
.homeViewButtonBarBoxShadow !=
null
? [
Theme.of(context) Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.standardBoxShadow, .homeViewButtonBarBoxShadow!,
], ]
: null,
), ),
child: const Padding( child: const Padding(
padding: EdgeInsets.only( padding: EdgeInsets.only(

View file

@ -45,14 +45,14 @@ class _HomeViewButtonBarState extends ConsumerState<HomeViewButtonBar> {
style: selectedIndex == 0 style: selectedIndex == 0
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context)! .getPrimaryEnabledButtonStyle(context)!
.copyWith( .copyWith(
minimumSize: minimumSize:
MaterialStateProperty.all<Size>(const Size(46, 36)), MaterialStateProperty.all<Size>(const Size(46, 36)),
) )
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context)! .getSecondaryEnabledButtonStyle(context)!
.copyWith( .copyWith(
minimumSize: minimumSize:
MaterialStateProperty.all<Size>(const Size(46, 36)), MaterialStateProperty.all<Size>(const Size(46, 36)),
@ -71,7 +71,9 @@ class _HomeViewButtonBarState extends ConsumerState<HomeViewButtonBar> {
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.buttonTextPrimary .buttonTextPrimary
: Theme.of(context).extension<StackColors>()!.textDark, : Theme.of(context)
.extension<StackColors>()!
.buttonTextSecondary,
), ),
), ),
), ),
@ -84,14 +86,14 @@ class _HomeViewButtonBarState extends ConsumerState<HomeViewButtonBar> {
style: selectedIndex == 1 style: selectedIndex == 1
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context)! .getPrimaryEnabledButtonStyle(context)!
.copyWith( .copyWith(
minimumSize: minimumSize:
MaterialStateProperty.all<Size>(const Size(46, 36)), MaterialStateProperty.all<Size>(const Size(46, 36)),
) )
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context)! .getSecondaryEnabledButtonStyle(context)!
.copyWith( .copyWith(
minimumSize: minimumSize:
MaterialStateProperty.all<Size>(const Size(46, 36)), MaterialStateProperty.all<Size>(const Size(46, 36)),
@ -118,7 +120,9 @@ class _HomeViewButtonBarState extends ConsumerState<HomeViewButtonBar> {
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.buttonTextPrimary .buttonTextPrimary
: Theme.of(context).extension<StackColors>()!.textDark, : Theme.of(context)
.extension<StackColors>()!
.buttonTextSecondary,
), ),
), ),
), ),

View file

@ -259,7 +259,7 @@ class GetStartedButton extends StatelessWidget {
? TextButton( ? TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
onPressed: () { onPressed: () {
Prefs.instance.externalCalls = true; Prefs.instance.externalCalls = true;
Navigator.of(context).pushNamed( Navigator.of(context).pushNamed(
@ -278,7 +278,7 @@ class GetStartedButton extends StatelessWidget {
child: TextButton( child: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
onPressed: () { onPressed: () {
Navigator.of(context).pushNamed( Navigator.of(context).pushNamed(
StackPrivacyCalls.routeName, StackPrivacyCalls.routeName,

View file

@ -225,7 +225,7 @@ class _GenerateUriQrCodeViewState extends State<GenerateUriQrCodeView> {
}, },
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,

View file

@ -206,7 +206,7 @@ class _ReceiveViewState extends ConsumerState<ReceiveView> {
onPressed: generateNewAddress, onPressed: generateNewAddress,
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Generate new address", "Generate new address",
style: STextStyles.button(context).copyWith( style: STextStyles.button(context).copyWith(

View file

@ -196,7 +196,7 @@ class _ConfirmTransactionViewState
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Ok", "Ok",
style: STextStyles.button(context).copyWith( style: STextStyles.button(context).copyWith(

View file

@ -1608,7 +1608,7 @@ class _SendViewState extends ConsumerState<SendView> {
leftButton: TextButton( leftButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor( .getSecondaryEnabledButtonStyle(
context), context),
child: Text( child: Text(
"Cancel", "Cancel",
@ -1628,7 +1628,7 @@ class _SendViewState extends ConsumerState<SendView> {
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor( .getPrimaryEnabledButtonStyle(
context), context),
child: Text( child: Text(
"Yes", "Yes",
@ -1738,7 +1738,7 @@ class _SendViewState extends ConsumerState<SendView> {
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor( .getSecondaryEnabledButtonStyle(
context), context),
child: Text( child: Text(
"Ok", "Ok",
@ -1767,10 +1767,10 @@ class _SendViewState extends ConsumerState<SendView> {
.state .state
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context) .getPrimaryEnabledButtonStyle(context)
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryDisabledButtonColor(context), .getPrimaryDisabledButtonStyle(context),
child: Text( child: Text(
"Preview", "Preview",
style: STextStyles.button(context), style: STextStyles.button(context),

View file

@ -107,7 +107,7 @@ class _RestoringDialogState extends State<BuildingTransactionDialog>
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Cancel", "Cancel",
style: STextStyles.itemSubtitle12(context), style: STextStyles.itemSubtitle12(context),

View file

@ -144,7 +144,7 @@ class _DebugViewState extends ConsumerState<DebugView> {
leftButton: TextButton( leftButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Cancel", "Cancel",
style: STextStyles.itemSubtitle12(context), style: STextStyles.itemSubtitle12(context),
@ -156,7 +156,7 @@ class _DebugViewState extends ConsumerState<DebugView> {
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
child: Text( child: Text(
"Delete logs", "Delete logs",
style: STextStyles.button(context), style: STextStyles.button(context),

View file

@ -7,6 +7,7 @@ import 'package:stackwallet/utilities/constants.dart';
import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/text_styles.dart';
import 'package:stackwallet/utilities/theme/color_theme.dart'; import 'package:stackwallet/utilities/theme/color_theme.dart';
import 'package:stackwallet/utilities/theme/dark_colors.dart'; import 'package:stackwallet/utilities/theme/dark_colors.dart';
import 'package:stackwallet/utilities/theme/fruit_sorbet_colors.dart';
import 'package:stackwallet/utilities/theme/light_colors.dart'; import 'package:stackwallet/utilities/theme/light_colors.dart';
import 'package:stackwallet/utilities/theme/ocean_breeze_colors.dart'; import 'package:stackwallet/utilities/theme/ocean_breeze_colors.dart';
import 'package:stackwallet/utilities/theme/oled_black_colors.dart'; import 'package:stackwallet/utilities/theme/oled_black_colors.dart';
@ -31,6 +32,8 @@ class AppearanceSettingsView extends ConsumerWidget {
return "Dark theme"; return "Dark theme";
case ThemeType.oledBlack: case ThemeType.oledBlack:
return "Oled Black theme"; return "Oled Black theme";
case ThemeType.fruitSorbet:
return "Fruit Sorbet theme";
} }
} }
@ -514,6 +517,87 @@ class _ThemeOptionsView extends ConsumerState<ThemeOptionsView> {
), ),
), ),
), ),
const SizedBox(
height: 10,
),
MaterialButton(
splashColor: Colors.transparent,
hoverColor: Colors.transparent,
padding: const EdgeInsets.all(0),
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(
Constants.size.circularBorderRadius,
),
),
onPressed: () {
DB.instance.put<dynamic>(
boxName: DB.boxNameTheme,
key: "colorScheme",
value: ThemeType.fruitSorbet.name,
);
ref.read(colorThemeProvider.state).state =
StackColors.fromStackColorTheme(
FruitSorbetColors(),
);
setState(() {
_selectedTheme = "fruitSorbet";
});
},
child: SizedBox(
width: 200,
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Row(
children: [
SizedBox(
width: 10,
height: 10,
child: Radio(
activeColor: Theme.of(context)
.extension<StackColors>()!
.radioButtonIconEnabled,
value: "fruitSorbet",
groupValue: _selectedTheme,
onChanged: (newValue) {
if (newValue is String && newValue == "fruitSorbet") {
DB.instance.put<dynamic>(
boxName: DB.boxNameTheme,
key: "colorScheme",
value: ThemeType.fruitSorbet.name,
);
ref.read(colorThemeProvider.state).state =
StackColors.fromStackColorTheme(
FruitSorbetColors(),
);
setState(() {
_selectedTheme = "fruitSorbet";
});
}
},
),
),
const SizedBox(
width: 14,
),
Text(
"Fruit Sorbet",
style:
STextStyles.desktopTextExtraSmall(context).copyWith(
color: Theme.of(context)
.extension<StackColors>()!
.textDark2,
),
),
],
),
],
),
),
),
], ],
); );
} }

View file

@ -1,16 +1,15 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:stackwallet/pages/intro_view.dart'; import 'package:stackwallet/pages/intro_view.dart';
import 'package:stackwallet/utilities/delete_everything.dart';
import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/text_styles.dart';
import 'package:stackwallet/utilities/theme/stack_colors.dart';
import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/utilities/util.dart';
import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart'; import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart';
import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart'; import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart';
import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart'; import 'package:stackwallet/widgets/desktop/desktop_scaffold.dart';
import 'package:stackwallet/widgets/desktop/primary_button.dart'; import 'package:stackwallet/widgets/desktop/primary_button.dart';
import 'package:stackwallet/widgets/rounded_white_container.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart';
import 'package:stackwallet/widgets/stack_dialog.dart'; import 'package:stackwallet/widgets/stack_dialog.dart';
import 'package:stackwallet/utilities/delete_everything.dart';
import 'package:stackwallet/utilities/theme/stack_colors.dart';
class DeleteAccountView extends StatefulWidget { class DeleteAccountView extends StatefulWidget {
const DeleteAccountView({Key? key}) : super(key: key); const DeleteAccountView({Key? key}) : super(key: key);
@ -35,7 +34,7 @@ class _DeleteAccountViewState extends State<DeleteAccountView> {
leftButton: TextButton( leftButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
onPressed: () { onPressed: () {
Navigator.pop(context); Navigator.pop(context);
}, },
@ -50,7 +49,7 @@ class _DeleteAccountViewState extends State<DeleteAccountView> {
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
onPressed: () async { onPressed: () async {
await deleteEverything(); await deleteEverything();

View file

@ -284,7 +284,7 @@ class _AddEditNodeViewState extends ConsumerState<AddEditNodeView> {
}, },
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
child: Text( child: Text(
"Save", "Save",
style: STextStyles.button(context), style: STextStyles.button(context),
@ -603,10 +603,10 @@ class _AddEditNodeViewState extends ConsumerState<AddEditNodeView> {
style: saveEnabled style: saveEnabled
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context) .getPrimaryEnabledButtonStyle(context)
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryDisabledButtonColor(context), .getPrimaryDisabledButtonStyle(context),
onPressed: saveEnabled ? attemptSave : null, onPressed: saveEnabled ? attemptSave : null,
child: Text( child: Text(
"Save", "Save",

View file

@ -85,7 +85,7 @@ class _AutoBackupViewState extends ConsumerState<AutoBackupView> {
leftButton: TextButton( leftButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Back", "Back",
style: STextStyles.button(context).copyWith( style: STextStyles.button(context).copyWith(
@ -100,7 +100,7 @@ class _AutoBackupViewState extends ConsumerState<AutoBackupView> {
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
child: Text( child: Text(
"Continue", "Continue",
style: STextStyles.button(context), style: STextStyles.button(context),
@ -142,7 +142,7 @@ class _AutoBackupViewState extends ConsumerState<AutoBackupView> {
leftButton: TextButton( leftButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Back", "Back",
style: STextStyles.button(context).copyWith( style: STextStyles.button(context).copyWith(
@ -157,7 +157,7 @@ class _AutoBackupViewState extends ConsumerState<AutoBackupView> {
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
child: Text( child: Text(
"Disable", "Disable",
style: STextStyles.button(context), style: STextStyles.button(context),

View file

@ -483,10 +483,10 @@ class _EnableAutoBackupViewState extends ConsumerState<CreateAutoBackupView> {
style: shouldEnableCreate style: shouldEnableCreate
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context) .getPrimaryEnabledButtonStyle(context)
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryDisabledButtonColor(context), .getPrimaryDisabledButtonStyle(context),
onPressed: !shouldEnableCreate onPressed: !shouldEnableCreate
? null ? null
: () async { : () async {
@ -596,7 +596,7 @@ class _EnableAutoBackupViewState extends ConsumerState<CreateAutoBackupView> {
fileToSave, fileToSave,
adkString, adkString,
jsonEncode(backup), jsonEncode(backup),
adkVersion: adkVersion, adkVersion,
); );
// this future should already be complete unless there was an error encrypting // this future should already be complete unless there was an error encrypting

View file

@ -67,7 +67,7 @@ class CreateBackupInfoView extends StatelessWidget {
TextButton( TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
onPressed: () { onPressed: () {
Navigator.of(context) Navigator.of(context)
.pushNamed(CreateBackupView.routeName); .pushNamed(CreateBackupView.routeName);

View file

@ -454,10 +454,10 @@ class _RestoreFromFileViewState extends State<CreateBackupView> {
style: shouldEnableCreate style: shouldEnableCreate
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context) .getPrimaryEnabledButtonStyle(context)
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryDisabledButtonColor(context), .getPrimaryDisabledButtonStyle(context),
onPressed: !shouldEnableCreate onPressed: !shouldEnableCreate
? null ? null
: () async { : () async {

View file

@ -27,7 +27,7 @@ class CancelStackRestoreDialog extends StatelessWidget {
leftButton: TextButton( leftButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Back", "Back",
style: STextStyles.itemSubtitle12(context), style: STextStyles.itemSubtitle12(context),
@ -39,7 +39,7 @@ class CancelStackRestoreDialog extends StatelessWidget {
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
child: Text( child: Text(
"Yes, cancel", "Yes, cancel",
style: STextStyles.itemSubtitle12(context).copyWith( style: STextStyles.itemSubtitle12(context).copyWith(

View file

@ -187,7 +187,7 @@ class _EditAutoBackupViewState extends ConsumerState<EditAutoBackupView> {
fileToSave, fileToSave,
adkString, adkString,
jsonEncode(backup), jsonEncode(backup),
adkVersion: adkVersion, adkVersion,
); );
// this future should already be complete unless there was an error encrypting // this future should already be complete unless there was an error encrypting
@ -781,10 +781,10 @@ class _EditAutoBackupViewState extends ConsumerState<EditAutoBackupView> {
style: shouldEnableCreate style: shouldEnableCreate
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context) .getPrimaryEnabledButtonStyle(context)
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryDisabledButtonColor(context), .getPrimaryDisabledButtonStyle(context),
onPressed: !shouldEnableCreate ? null : onSavePressed, onPressed: !shouldEnableCreate ? null : onSavePressed,
child: Text( child: Text(
"Save", "Save",

View file

@ -133,9 +133,9 @@ abstract class SWB {
static Future<bool> encryptStackWalletWithADK( static Future<bool> encryptStackWalletWithADK(
String fileToSave, String fileToSave,
String adk, String adk,
String plaintext, { String plaintext,
int? adkVersion, int adkVersion,
}) async { ) async {
try { try {
File backupFile = File(fileToSave); File backupFile = File(fileToSave);
if (!backupFile.existsSync()) { if (!backupFile.existsSync()) {

View file

@ -158,10 +158,10 @@ class _RestoreFromEncryptedStringViewState
style: passwordController.text.isEmpty style: passwordController.text.isEmpty
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context) .getPrimaryEnabledButtonStyle(context)
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryDisabledButtonColor(context), .getPrimaryDisabledButtonStyle(context),
onPressed: passwordController.text.isEmpty onPressed: passwordController.text.isEmpty
? null ? null
: () async { : () async {

View file

@ -280,10 +280,10 @@ class _RestoreFromFileViewState extends ConsumerState<RestoreFromFileView> {
fileLocationController.text.isEmpty fileLocationController.text.isEmpty
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryDisabledButtonColor(context) .getPrimaryDisabledButtonStyle(context)
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
onPressed: passwordController.text.isEmpty || onPressed: passwordController.text.isEmpty ||
fileLocationController.text.isEmpty fileLocationController.text.isEmpty
? null ? null

View file

@ -669,7 +669,7 @@ class _StackRestoreProgressViewState
}, },
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
child: Text( child: Text(
_success ? "OK" : "Cancel restore process", _success ? "OK" : "Cancel restore process",
style: STextStyles.button(context).copyWith( style: STextStyles.button(context).copyWith(

View file

@ -140,7 +140,7 @@ class WalletBackupView extends ConsumerWidget {
TextButton( TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
onPressed: () { onPressed: () {
String data = AddressUtils.encodeQRSeedData(mnemonic); String data = AddressUtils.encodeQRSeedData(mnemonic);
@ -194,7 +194,7 @@ class WalletBackupView extends ConsumerWidget {
}, },
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Cancel", "Cancel",
style: STextStyles.button(context).copyWith( style: STextStyles.button(context).copyWith(

View file

@ -96,7 +96,7 @@ class ConfirmFullRescanDialog extends StatelessWidget {
leftButton: TextButton( leftButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Cancel", "Cancel",
style: STextStyles.itemSubtitle12(context), style: STextStyles.itemSubtitle12(context),
@ -108,7 +108,7 @@ class ConfirmFullRescanDialog extends StatelessWidget {
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
child: Text( child: Text(
"Rescan", "Rescan",
style: STextStyles.button(context), style: STextStyles.button(context),

View file

@ -126,7 +126,7 @@ class _WalletNetworkSettingsViewState
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Ok", "Ok",
style: STextStyles.itemSubtitle12(context), style: STextStyles.itemSubtitle12(context),
@ -156,7 +156,7 @@ class _WalletNetworkSettingsViewState
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Ok", "Ok",
style: STextStyles.itemSubtitle12(context), style: STextStyles.itemSubtitle12(context),

View file

@ -306,7 +306,7 @@ class _WalletSettingsViewState extends State<WalletSettingsView> {
}, },
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Log out", "Log out",
style: STextStyles.button(context).copyWith( style: STextStyles.button(context).copyWith(

View file

@ -156,7 +156,7 @@ class _DeleteWalletRecoveryPhraseViewState
TextButton( TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
onPressed: () { onPressed: () {
showDialog<dynamic>( showDialog<dynamic>(
barrierDismissible: true, barrierDismissible: true,
@ -166,7 +166,7 @@ class _DeleteWalletRecoveryPhraseViewState
leftButton: TextButton( leftButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
onPressed: () { onPressed: () {
Navigator.pop(context); Navigator.pop(context);
}, },
@ -181,7 +181,7 @@ class _DeleteWalletRecoveryPhraseViewState
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
onPressed: () async { onPressed: () async {
final walletId = _manager.walletId; final walletId = _manager.walletId;
final walletsInstance = final walletsInstance =

View file

@ -69,7 +69,7 @@ class DeleteWalletWarningView extends ConsumerWidget {
TextButton( TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
onPressed: () { onPressed: () {
Navigator.pop(context); Navigator.pop(context);
}, },
@ -87,7 +87,7 @@ class DeleteWalletWarningView extends ConsumerWidget {
TextButton( TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
onPressed: () async { onPressed: () async {
final manager = ref final manager = ref
.read(walletsChangeNotifierProvider) .read(walletsChangeNotifierProvider)

View file

@ -114,7 +114,7 @@ class _RenameWalletViewState extends ConsumerState<RenameWalletView> {
TextButton( TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
onPressed: () async { onPressed: () async {
final newName = _controller.text; final newName = _controller.text;
final success = await ref final success = await ref

View file

@ -105,7 +105,7 @@ class WalletSettingsWalletSettingsView extends ConsumerWidget {
leftButton: TextButton( leftButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
onPressed: () { onPressed: () {
Navigator.pop(context); Navigator.pop(context);
}, },
@ -120,7 +120,7 @@ class WalletSettingsWalletSettingsView extends ConsumerWidget {
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
onPressed: () { onPressed: () {
Navigator.pop(context); Navigator.pop(context);
Navigator.push( Navigator.push(

View file

@ -204,7 +204,7 @@ class _EditNoteViewState extends ConsumerState<EditNoteView> {
}, },
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
child: Text( child: Text(
"Save", "Save",
style: STextStyles.button(context), style: STextStyles.button(context),

View file

@ -202,7 +202,7 @@ class _TransactionDetailsViewState
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
onPressed: () { onPressed: () {
Navigator.of(context).pop(true); Navigator.of(context).pop(true);
}, },

View file

@ -579,7 +579,7 @@ class _WalletViewState extends ConsumerState<WalletView> {
child: TextButton( child: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
onPressed: () async { onPressed: () async {
await showDialog<void>( await showDialog<void>(
context: context, context: context,
@ -609,7 +609,7 @@ class _WalletViewState extends ConsumerState<WalletView> {
}, },
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor( .getPrimaryEnabledButtonStyle(
context), context),
child: Text( child: Text(
"Continue", "Continue",

View file

@ -94,7 +94,7 @@ class AddWalletButton extends StatelessWidget {
return TextButton( return TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
onPressed: () { onPressed: () {
if (isDesktop) { if (isDesktop) {
Navigator.of( Navigator.of(

View file

@ -1,16 +1,19 @@
import 'dart:async';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:stackwallet/pages/wallet_view/wallet_view.dart';
import 'package:stackwallet/pages/wallets_sheet/wallets_sheet.dart'; import 'package:stackwallet/pages/wallets_sheet/wallets_sheet.dart';
import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/providers/providers.dart';
import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/assets.dart';
import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/constants.dart';
import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart';
import 'package:stackwallet/utilities/format.dart'; import 'package:stackwallet/utilities/format.dart';
import 'package:stackwallet/utilities/prefs.dart';
import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/text_styles.dart';
import 'package:stackwallet/utilities/theme/stack_colors.dart'; import 'package:stackwallet/utilities/theme/stack_colors.dart';
import 'package:stackwallet/widgets/rounded_white_container.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart';
import 'package:tuple/tuple.dart';
class WalletListItem extends ConsumerWidget { class WalletListItem extends ConsumerWidget {
const WalletListItem({ const WalletListItem({
@ -41,7 +44,25 @@ class WalletListItem extends ConsumerWidget {
borderRadius: borderRadius:
BorderRadius.circular(Constants.size.circularBorderRadius), BorderRadius.circular(Constants.size.circularBorderRadius),
), ),
onPressed: () { onPressed: () async {
if (walletCount == 1) {
final providersByCoin = ref.watch(walletsChangeNotifierProvider
.select((value) => value.getManagerProvidersByCoin()));
final manager = ref.read(providersByCoin[coin]!.first);
if (coin == Coin.monero || coin == Coin.wownero) {
await manager.initializeExisting();
}
unawaited(
Navigator.of(context).pushNamed(
WalletView.routeName,
arguments: Tuple2(
manager.walletId,
providersByCoin[coin]!.first,
),
),
);
} else {
unawaited(
showModalBottomSheet<dynamic>( showModalBottomSheet<dynamic>(
backgroundColor: Colors.transparent, backgroundColor: Colors.transparent,
context: context, context: context,
@ -51,7 +72,9 @@ class WalletListItem extends ConsumerWidget {
), ),
), ),
builder: (_) => WalletsSheet(coin: coin), builder: (_) => WalletsSheet(coin: coin),
),
); );
}
}, },
child: Row( child: Row(
children: [ children: [

View file

@ -262,10 +262,10 @@ class _DesktopMenuItemState<T> extends ConsumerState<DesktopMenuItem<T>>
style: value == group style: value == group
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getDesktopMenuButtonColorSelected(context) .getDesktopMenuButtonStyleSelected(context)
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getDesktopMenuButtonColor(context), .getDesktopMenuButtonStyle(context),
onPressed: () { onPressed: () {
onChanged(value); onChanged(value);
}, },

View file

@ -22,7 +22,7 @@ class ExitToMyStackButton extends StatelessWidget {
child: TextButton( child: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSmallSecondaryEnabledButtonColor(context), .getSmallSecondaryEnabledButtonStyle(context),
onPressed: onPressed ?? onPressed: onPressed ??
() { () {
Navigator.of(context).popUntil( Navigator.of(context).popUntil(

View file

@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:stackwallet/pages_desktop_specific/my_stack_view/coin_wallets_table.dart'; import 'package:stackwallet/pages_desktop_specific/my_stack_view/coin_wallets_table.dart';
import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart';
import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/providers/providers.dart';
import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/assets.dart';
import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/constants.dart';
@ -43,7 +44,18 @@ class _WalletTableState extends ConsumerState<WalletSummaryTable> {
(value) => value (value) => value
.getManagerProvidersForCoin(providersByCoin[i].key))); .getManagerProvidersForCoin(providersByCoin[i].key)));
VoidCallback? expandOverride;
if (providers.length == 1) {
expandOverride = () {
Navigator.of(context).pushNamed(
DesktopWalletView.routeName,
arguments: ref.read(providers.first).walletId,
);
};
}
return TableViewRow( return TableViewRow(
expandOverride: expandOverride,
padding: const EdgeInsets.symmetric( padding: const EdgeInsets.symmetric(
horizontal: 20, horizontal: 20,
vertical: 16, vertical: 16,

View file

@ -425,10 +425,10 @@ class _CreatePasswordViewState extends ConsumerState<CreatePasswordView> {
style: nextEnabled style: nextEnabled
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context) .getPrimaryEnabledButtonStyle(context)
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryDisabledButtonColor(context), .getPrimaryDisabledButtonStyle(context),
onPressed: nextEnabled ? onNextPressed : null, onPressed: nextEnabled ? onNextPressed : null,
child: Text( child: Text(
"Next", "Next",

View file

@ -169,6 +169,8 @@ class _ThemeToggle extends ConsumerState<ThemeToggle> {
return Assets.svg.themeOcean; return Assets.svg.themeOcean;
case ThemeType.oledBlack: case ThemeType.oledBlack:
return Assets.svg.themeOledBlack; return Assets.svg.themeOledBlack;
case ThemeType.fruitSorbet:
return Assets.svg.themeFruit;
} }
} }

View file

@ -159,7 +159,7 @@ class _BackupRestoreSettings extends ConsumerState<BackupRestoreSettings> {
leftButton: TextButton( leftButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
child: Text( child: Text(
"Back", "Back",
style: STextStyles.button(context).copyWith( style: STextStyles.button(context).copyWith(
@ -175,7 +175,7 @@ class _BackupRestoreSettings extends ConsumerState<BackupRestoreSettings> {
rightButton: TextButton( rightButton: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
child: Text( child: Text(
"Disable", "Disable",
style: STextStyles.button(context), style: STextStyles.button(context),

View file

@ -722,7 +722,7 @@ class _CreateAutoBackup extends ConsumerState<CreateAutoBackup> {
fileToSave, fileToSave,
adkString, adkString,
jsonEncode(backup), jsonEncode(backup),
adkVersion: adkVersion, adkVersion,
); );
// this future should already be complete unless there was an error encrypting // this future should already be complete unless there was an error encrypting

View file

@ -25,10 +25,10 @@ class SettingsMenuItem<T> extends StatelessWidget {
style: value == group style: value == group
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getDesktopSettingsButtonColor(context) .getDesktopSettingsButtonStyle(context)
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getDesktopSettingsButtonColor(context), .getDesktopSettingsButtonStyle(context),
onPressed: () { onPressed: () {
onChanged(value); onChanged(value);
}, },

View file

@ -75,8 +75,7 @@ class AutoSWBService extends ChangeNotifier {
createAutoBackupFilename(autoBackupDirectoryPath, now); createAutoBackupFilename(autoBackupDirectoryPath, now);
final result = await SWB.encryptStackWalletWithADK( final result = await SWB.encryptStackWalletWithADK(
fileToSave, adkString!, jsonString, fileToSave, adkString!, jsonString, adkVersion);
adkVersion: adkVersion);
if (!result) { if (!result) {
throw Exception("stack auto backup service failed to create a backup"); throw Exception("stack auto backup service failed to create a backup");

View file

@ -37,6 +37,7 @@ class _SVG {
return null; return null;
case ThemeType.oceanBreeze: case ThemeType.oceanBreeze:
case ThemeType.fruitSorbet:
return "assets/svg/${Theme.of(context).extension<StackColors>()!.themeType.name}/bg.svg"; return "assets/svg/${Theme.of(context).extension<StackColors>()!.themeType.name}/bg.svg";
} }
} }
@ -71,6 +72,7 @@ class _SVG {
String txExchangeFailed(BuildContext context) => String txExchangeFailed(BuildContext context) =>
"assets/svg/${Theme.of(context).extension<StackColors>()!.themeType.name}/tx-exchange-icon-failed.svg"; "assets/svg/${Theme.of(context).extension<StackColors>()!.themeType.name}/tx-exchange-icon-failed.svg";
String get themeFruit => "assets/svg/fruit-sorbet-theme.svg";
String get themeOledBlack => "assets/svg/oled-black-theme.svg"; String get themeOledBlack => "assets/svg/oled-black-theme.svg";
String get themeOcean => "assets/svg/ocean-breeze-theme.svg"; String get themeOcean => "assets/svg/ocean-breeze-theme.svg";
String get themeLight => "assets/svg/light-mode.svg"; String get themeLight => "assets/svg/light-mode.svg";

View file

@ -33,6 +33,12 @@ class STextStyles {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontSize: 12, fontSize: 12,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark3,
fontWeight: FontWeight.w500,
fontSize: 12,
);
} }
} }
@ -62,6 +68,12 @@ class STextStyles {
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
fontSize: 20, fontSize: 20,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w600,
fontSize: 20,
);
} }
} }
@ -91,6 +103,12 @@ class STextStyles {
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
fontSize: 18, fontSize: 18,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w600,
fontSize: 18,
);
} }
} }
@ -120,6 +138,12 @@ class STextStyles {
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
fontSize: 16, fontSize: 16,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w600,
fontSize: 16,
);
} }
} }
@ -149,6 +173,12 @@ class STextStyles {
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
fontSize: 16, fontSize: 16,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w600,
fontSize: 16,
);
} }
} }
@ -178,6 +208,12 @@ class STextStyles {
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
fontSize: 16, fontSize: 16,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w400,
fontSize: 16,
);
} }
} }
@ -207,6 +243,12 @@ class STextStyles {
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
fontSize: 16, fontSize: 16,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w400,
fontSize: 16,
);
} }
} }
@ -236,6 +278,12 @@ class STextStyles {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontSize: 16, fontSize: 16,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w500,
fontSize: 16,
);
} }
} }
@ -265,6 +313,12 @@ class STextStyles {
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
fontSize: 16, fontSize: 16,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w600,
fontSize: 16,
);
} }
} }
@ -294,6 +348,12 @@ class STextStyles {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontSize: 16, fontSize: 16,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).buttonTextPrimary,
fontWeight: FontWeight.w500,
fontSize: 16,
);
} }
} }
@ -323,6 +383,12 @@ class STextStyles {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontSize: 16, fontSize: 16,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w500,
fontSize: 16,
);
} }
} }
@ -352,6 +418,12 @@ class STextStyles {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontSize: 16, fontSize: 16,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark3,
fontWeight: FontWeight.w500,
fontSize: 16,
);
} }
} }
@ -381,6 +453,12 @@ class STextStyles {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontSize: 14, fontSize: 14,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark3,
fontWeight: FontWeight.w500,
fontSize: 14,
);
} }
} }
@ -410,6 +488,12 @@ class STextStyles {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontSize: 12, fontSize: 12,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textSubtitle1,
fontWeight: FontWeight.w500,
fontSize: 12,
);
} }
} }
@ -443,6 +527,13 @@ class STextStyles {
fontSize: 14, fontSize: 14,
height: 14 / 14, height: 14 / 14,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textFieldActiveSearchIconRight,
fontWeight: FontWeight.w500,
fontSize: 14,
height: 14 / 14,
);
} }
} }
@ -472,6 +563,12 @@ class STextStyles {
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
fontSize: 12, fontSize: 12,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textSubtitle1,
fontWeight: FontWeight.w700,
fontSize: 12,
);
} }
} }
@ -501,6 +598,12 @@ class STextStyles {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontSize: 14, fontSize: 14,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).infoItemLabel,
fontWeight: FontWeight.w500,
fontSize: 14,
);
} }
} }
@ -530,6 +633,12 @@ class STextStyles {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontSize: 14, fontSize: 14,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w500,
fontSize: 14,
);
} }
} }
@ -559,6 +668,12 @@ class STextStyles {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontSize: 14, fontSize: 14,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w500,
fontSize: 14,
);
} }
} }
@ -592,6 +707,13 @@ class STextStyles {
fontSize: 14, fontSize: 14,
height: 1.5, height: 1.5,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textSubtitle2,
fontWeight: FontWeight.w500,
fontSize: 14,
height: 1.5,
);
} }
} }
@ -625,6 +747,13 @@ class STextStyles {
fontSize: 14, fontSize: 14,
height: 1.5, height: 1.5,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w500,
fontSize: 14,
height: 1.5,
);
} }
} }
@ -654,6 +783,12 @@ class STextStyles {
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
fontSize: 14, fontSize: 14,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w400,
fontSize: 14,
);
} }
} }
@ -683,6 +818,12 @@ class STextStyles {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontSize: 14, fontSize: 14,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).accentColorRed,
fontWeight: FontWeight.w500,
fontSize: 14,
);
} }
} }
@ -712,6 +853,12 @@ class STextStyles {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontSize: 14, fontSize: 14,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).infoItemIcons,
fontWeight: FontWeight.w500,
fontSize: 14,
);
} }
} }
@ -741,6 +888,12 @@ class STextStyles {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontSize: 12, fontSize: 12,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).accentColorBlue,
fontWeight: FontWeight.w500,
fontSize: 12,
);
} }
} }
@ -770,6 +923,12 @@ class STextStyles {
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
fontSize: 12, fontSize: 12,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w600,
fontSize: 12,
);
} }
} }
@ -799,6 +958,12 @@ class STextStyles {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontSize: 12, fontSize: 12,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w500,
fontSize: 12,
);
} }
} }
@ -828,6 +993,12 @@ class STextStyles {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontSize: 12, fontSize: 12,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w500,
fontSize: 12,
);
} }
} }
@ -857,6 +1028,12 @@ class STextStyles {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontSize: 12, fontSize: 12,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w500,
fontSize: 12,
);
} }
} }
@ -886,6 +1063,12 @@ class STextStyles {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontSize: 10, fontSize: 10,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textError,
fontWeight: FontWeight.w500,
fontSize: 10,
);
} }
} }
@ -915,6 +1098,12 @@ class STextStyles {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontSize: 10, fontSize: 10,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textSubtitle1,
fontWeight: FontWeight.w500,
fontSize: 10,
);
} }
} }
@ -950,6 +1139,13 @@ class STextStyles {
fontSize: 40, fontSize: 40,
height: 40 / 40, height: 40 / 40,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w600,
fontSize: 40,
height: 40 / 40,
);
} }
} }
@ -983,6 +1179,13 @@ class STextStyles {
fontSize: 32, fontSize: 32,
height: 32 / 32, height: 32 / 32,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w600,
fontSize: 32,
height: 32 / 32,
);
} }
} }
@ -1016,6 +1219,13 @@ class STextStyles {
fontSize: 24, fontSize: 24,
height: 24 / 24, height: 24 / 24,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w600,
fontSize: 24,
height: 24 / 24,
);
} }
} }
@ -1049,6 +1259,13 @@ class STextStyles {
fontSize: 24, fontSize: 24,
height: 24 / 24, height: 24 / 24,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w500,
fontSize: 24,
height: 24 / 24,
);
} }
} }
@ -1082,6 +1299,13 @@ class STextStyles {
fontSize: 20, fontSize: 20,
height: 30 / 20, height: 30 / 20,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w500,
fontSize: 20,
height: 30 / 20,
);
} }
} }
@ -1115,6 +1339,13 @@ class STextStyles {
fontSize: 20, fontSize: 20,
height: 30 / 20, height: 30 / 20,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w400,
fontSize: 20,
height: 30 / 20,
);
} }
} }
@ -1148,6 +1379,13 @@ class STextStyles {
fontSize: 20, fontSize: 20,
height: 28 / 20, height: 28 / 20,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w400,
fontSize: 20,
height: 28 / 20,
);
} }
} }
@ -1181,6 +1419,13 @@ class STextStyles {
fontSize: 24, fontSize: 24,
height: 33 / 24, height: 33 / 24,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w400,
fontSize: 24,
height: 33 / 24,
);
} }
} }
@ -1214,6 +1459,13 @@ class STextStyles {
fontSize: 20, fontSize: 20,
height: 26 / 20, height: 26 / 20,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).buttonTextPrimary,
fontWeight: FontWeight.w500,
fontSize: 20,
height: 26 / 20,
);
} }
} }
@ -1247,6 +1499,13 @@ class STextStyles {
fontSize: 20, fontSize: 20,
height: 26 / 20, height: 26 / 20,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).buttonTextPrimaryDisabled,
fontWeight: FontWeight.w500,
fontSize: 20,
height: 26 / 20,
);
} }
} }
@ -1280,6 +1539,13 @@ class STextStyles {
fontSize: 20, fontSize: 20,
height: 26 / 20, height: 26 / 20,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).buttonTextSecondary,
fontWeight: FontWeight.w500,
fontSize: 20,
height: 26 / 20,
);
} }
} }
@ -1313,6 +1579,13 @@ class STextStyles {
fontSize: 20, fontSize: 20,
height: 26 / 20, height: 26 / 20,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).buttonTextSecondaryDisabled,
fontWeight: FontWeight.w500,
fontSize: 20,
height: 26 / 20,
);
} }
} }
@ -1346,6 +1619,13 @@ class STextStyles {
fontSize: 18, fontSize: 18,
height: 27 / 18, height: 27 / 18,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w500,
fontSize: 18,
height: 27 / 18,
);
} }
} }
@ -1379,6 +1659,13 @@ class STextStyles {
fontSize: 18, fontSize: 18,
height: 27 / 18, height: 27 / 18,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w700,
fontSize: 18,
height: 27 / 18,
);
} }
} }
@ -1412,6 +1699,13 @@ class STextStyles {
fontSize: 16, fontSize: 16,
height: 24 / 16, height: 24 / 16,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).buttonTextPrimaryDisabled,
fontWeight: FontWeight.w500,
fontSize: 16,
height: 24 / 16,
);
} }
} }
@ -1445,6 +1739,13 @@ class STextStyles {
fontSize: 14, fontSize: 14,
height: 21 / 14, height: 21 / 14,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textSubtitle1,
fontWeight: FontWeight.w500,
fontSize: 14,
height: 21 / 14,
);
} }
} }
@ -1478,6 +1779,13 @@ class STextStyles {
fontSize: 14, fontSize: 14,
height: 21 / 14, height: 21 / 14,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w600,
fontSize: 14,
height: 21 / 14,
);
} }
} }
@ -1511,6 +1819,13 @@ class STextStyles {
fontSize: 16, fontSize: 16,
height: 24 / 16, height: 24 / 16,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).buttonTextSecondary,
fontWeight: FontWeight.w500,
fontSize: 16,
height: 24 / 16,
);
} }
} }
@ -1544,6 +1859,13 @@ class STextStyles {
fontSize: 20, fontSize: 20,
height: 30 / 20, height: 30 / 20,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textSubtitle2,
fontWeight: FontWeight.w500,
fontSize: 20,
height: 30 / 20,
);
} }
} }
@ -1577,6 +1899,13 @@ class STextStyles {
fontSize: 16, fontSize: 16,
height: 20.8 / 16, height: 20.8 / 16,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark.withOpacity(0.8),
fontWeight: FontWeight.w500,
fontSize: 16,
height: 20.8 / 16,
);
} }
} }
@ -1610,6 +1939,13 @@ class STextStyles {
fontSize: 16, fontSize: 16,
height: 20.8 / 16, height: 20.8 / 16,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w500,
fontSize: 16,
height: 20.8 / 16,
);
} }
} }
@ -1643,6 +1979,13 @@ class STextStyles {
fontSize: 16, fontSize: 16,
height: 20.8 / 16, height: 20.8 / 16,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark.withOpacity(0.5),
fontWeight: FontWeight.w500,
fontSize: 16,
height: 20.8 / 16,
);
} }
} }
@ -1676,6 +2019,13 @@ class STextStyles {
fontSize: 16, fontSize: 16,
height: 20.8 / 16, height: 20.8 / 16,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
color: _theme(context).textDark,
fontWeight: FontWeight.w500,
fontSize: 16,
height: 20.8 / 16,
);
} }
} }
@ -1705,6 +2055,12 @@ class STextStyles {
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
fontSize: 8, fontSize: 8,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.roboto(
color: _theme(context).textDark,
fontWeight: FontWeight.w600,
fontSize: 8,
);
} }
} }
@ -1734,6 +2090,12 @@ class STextStyles {
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
fontSize: 26, fontSize: 26,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.roboto(
color: _theme(context).numberTextDefault,
fontWeight: FontWeight.w400,
fontSize: 26,
);
} }
} }
@ -1767,6 +2129,13 @@ class STextStyles {
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
fontSize: 12, fontSize: 12,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
letterSpacing: 0.5,
color: _theme(context).accentColorDark,
fontWeight: FontWeight.w400,
fontSize: 12,
);
} }
} }
@ -1800,6 +2169,13 @@ class STextStyles {
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
fontSize: 16, fontSize: 16,
); );
case ThemeType.fruitSorbet:
return GoogleFonts.inter(
letterSpacing: 0.5,
color: _theme(context).accentColorDark,
fontWeight: FontWeight.w600,
fontSize: 16,
);
} }
} }
} }

View file

@ -1,11 +1,12 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart';
import 'package:stackwallet/utilities/theme/dark_colors.dart'; import 'package:stackwallet/utilities/theme/dark_colors.dart';
import 'package:stackwallet/utilities/theme/fruit_sorbet_colors.dart';
import 'package:stackwallet/utilities/theme/light_colors.dart'; import 'package:stackwallet/utilities/theme/light_colors.dart';
import 'package:stackwallet/utilities/theme/ocean_breeze_colors.dart'; import 'package:stackwallet/utilities/theme/ocean_breeze_colors.dart';
import 'package:stackwallet/utilities/theme/oled_black_colors.dart'; import 'package:stackwallet/utilities/theme/oled_black_colors.dart';
enum ThemeType { light, dark, oceanBreeze, oledBlack } enum ThemeType { light, dark, oceanBreeze, oledBlack, fruitSorbet }
// adjust this file // adjust this file
@ -20,6 +21,8 @@ extension ThemeTypeExt on ThemeType {
return OceanBreezeColors(); return OceanBreezeColors();
case ThemeType.oledBlack: case ThemeType.oledBlack:
return OledBlackColors(); return OledBlackColors();
case ThemeType.fruitSorbet:
return FruitSorbetColors();
} }
} }
@ -33,6 +36,8 @@ extension ThemeTypeExt on ThemeType {
return "Ocean Breeze"; return "Ocean Breeze";
case ThemeType.oledBlack: case ThemeType.oledBlack:
return "Oled Black"; return "Oled Black";
case ThemeType.fruitSorbet:
return "Fruit Sorbet";
} }
} }
} }
@ -77,6 +82,8 @@ abstract class StackColorTheme {
Color get buttonBackSecondaryDisabled; Color get buttonBackSecondaryDisabled;
Color get buttonBackBorder; Color get buttonBackBorder;
Color get buttonBackBorderDisabled; Color get buttonBackBorderDisabled;
Color get buttonBackBorderSecondary;
Color get buttonBackBorderSecondaryDisabled;
Color get numberBackDefault; Color get numberBackDefault;
Color get numpadBackDefault; Color get numpadBackDefault;
Color get bottomNavBack; Color get bottomNavBack;
@ -212,6 +219,9 @@ abstract class StackColorTheme {
Color get myStackContactIconBG; Color get myStackContactIconBG;
Color get textConfirmTotalAmount; Color get textConfirmTotalAmount;
Color get textSelectedWordTableItem; Color get textSelectedWordTableItem;
BoxShadow get standardBoxShadow;
BoxShadow? get homeViewButtonBarBoxShadow;
} }
class CoinThemeColor { class CoinThemeColor {

View file

@ -71,6 +71,10 @@ class DarkColors extends StackColorTheme {
Color get buttonBackBorder => const Color(0xFF4C86E9); Color get buttonBackBorder => const Color(0xFF4C86E9);
@override @override
Color get buttonBackBorderDisabled => const Color(0xFF314265); Color get buttonBackBorderDisabled => const Color(0xFF314265);
@override
Color get buttonBackBorderSecondary => buttonBackSecondary;
@override
Color get buttonBackBorderSecondaryDisabled => buttonBackSecondaryDisabled;
@override @override
Color get numberBackDefault => const Color(0xFF484B51); Color get numberBackDefault => const Color(0xFF484B51);
@ -314,4 +318,18 @@ class DarkColors extends StackColorTheme {
Color get textConfirmTotalAmount => const Color(0xFF003921); Color get textConfirmTotalAmount => const Color(0xFF003921);
@override @override
Color get textSelectedWordTableItem => const Color(0xFF00297A); Color get textSelectedWordTableItem => const Color(0xFF00297A);
@override
BoxShadow get standardBoxShadow => BoxShadow(
color: shadow,
spreadRadius: 3,
blurRadius: 4,
);
@override
BoxShadow? get homeViewButtonBarBoxShadow => BoxShadow(
color: shadow,
spreadRadius: 3,
blurRadius: 4,
);
} }

View file

@ -0,0 +1,331 @@
import 'package:flutter/material.dart';
import 'package:stackwallet/utilities/theme/color_theme.dart';
class FruitSorbetColors extends StackColorTheme {
@override
ThemeType get themeType => ThemeType.fruitSorbet;
@override
Color get background => Colors.transparent;
@override
Color get backgroundAppBar => background;
@override
Gradient? get gradientBackground => null;
@override
Color get overlay => const Color(0xFF111215);
@override
Color get accentColorBlue => const Color(0xFF1276EB);
@override
Color get accentColorGreen => const Color(0xFF00A578);
@override
Color get accentColorYellow => const Color(0xFFFDC800);
@override
Color get accentColorRed => const Color(0xFFDD5869);
@override
Color get accentColorOrange => const Color(0xFFF8894B);
@override
Color get accentColorDark => const Color(0xFFF95369);
@override
Color get shadow => const Color(0x0F2D3132);
@override
Color get textDark => const Color(0xFF232323);
@override
Color get textDark2 => const Color(0xFF333333);
@override
Color get textDark3 => const Color(0xFF696B6C);
@override
Color get textSubtitle1 => const Color(0xFF7E8284);
@override
Color get textSubtitle2 => const Color(0xFF8E9192);
@override
Color get textSubtitle3 => const Color(0xFFB0B2B2);
@override
Color get textSubtitle4 => const Color(0xFFD1D3D3);
@override
Color get textSubtitle5 => const Color(0xFFDEDFE1);
@override
Color get textSubtitle6 => const Color(0xFFF1F1F1);
@override
Color get textWhite => const Color(0xFFFFFFFF);
@override
Color get textFavoriteCard => const Color(0xFF232323);
@override
Color get textError => const Color(0xFFA8000C);
@override
Color get textRestore => overlay;
// button background
@override
Color get buttonBackPrimary => const Color(0xFFF95369);
@override
Color get buttonBackSecondary => const Color(0xFFFDCBD2);
@override
Color get buttonBackPrimaryDisabled => const Color(0xFFFDC3CB);
@override
Color get buttonBackSecondaryDisabled => const Color(0xFFFEEAED);
@override
Color get buttonBackBorder => const Color(0xFFF95369);
@override
Color get buttonBackBorderDisabled => const Color(0xFFFCA7B3);
@override
Color get buttonBackBorderSecondary => buttonBackBorder;
@override
Color get buttonBackBorderSecondaryDisabled => buttonBackSecondaryDisabled;
@override
Color get numberBackDefault => const Color(0xFFFFF8EE);
@override
Color get numpadBackDefault => const Color(0xFFF95369);
@override
Color get bottomNavBack => const Color(0xFFFFFFFF);
// button text/element
@override
Color get buttonTextPrimary => const Color(0xFFFFFFFF);
@override
Color get buttonTextSecondary => const Color(0xFF9D3241);
@override
Color get buttonTextPrimaryDisabled => const Color(0xFFFFFFFF);
@override
Color get buttonTextSecondaryDisabled => const Color(0xFFD8ADB3);
@override
Color get buttonTextBorder => const Color(0xFFF95369);
@override
Color get buttonTextDisabled => const Color(0xFFFFFFFF);
@override
Color get buttonTextBorderless => const Color(0xFFF95369);
@override
Color get buttonTextBorderlessDisabled => const Color(0xFFFFFFFF);
@override
Color get numberTextDefault => const Color(0xFF232323);
@override
Color get numpadTextDefault => const Color(0xFFFFFFFF);
@override
Color get bottomNavText => const Color(0xFFD12B41);
// switch
@override
Color get switchBGOn => const Color(0xFFF95369);
@override
Color get switchBGOff => const Color(0xFFFCADB2);
@override
Color get switchBGDisabled => const Color(0xFFC5C6C9);
@override
Color get switchCircleOn => const Color(0xFFFFEEF0);
@override
Color get switchCircleOff => const Color(0xFFFFFCF5);
@override
Color get switchCircleDisabled => const Color(0xFFFFFCF5);
// step indicator background
@override
Color get stepIndicatorBGCheck => const Color(0xFFFFC6AE);
@override
Color get stepIndicatorBGNumber => const Color(0xFFFFC6AE);
@override
Color get stepIndicatorBGInactive => const Color(0xFFBFBFBF);
@override
Color get stepIndicatorBGLines => const Color(0xFFF39774);
@override
Color get stepIndicatorBGLinesInactive => const Color(0xFFB3B3B3);
@override
Color get stepIndicatorIconText => const Color(0xFFE12F09);
@override
Color get stepIndicatorIconNumber => const Color(0xFFE12F09);
@override
Color get stepIndicatorIconInactive => const Color(0xFFFFCFBA);
// checkbox
@override
Color get checkboxBGChecked => const Color(0xFFF95369);
@override
Color get checkboxBorderEmpty => const Color(0xFF8C8F90);
@override
Color get checkboxBGDisabled => const Color(0xFFFDB0AE);
@override
Color get checkboxIconChecked => const Color(0xFFFFFFFF);
@override
Color get checkboxIconDisabled => const Color(0xFFFFFFFF);
@override
Color get checkboxTextLabel => const Color(0xFF232323);
// snack bar
@override
Color get snackBarBackSuccess => const Color(0xFFB7F0CC);
@override
Color get snackBarBackError => const Color(0xFFFCBDBA);
@override
Color get snackBarBackInfo => const Color(0xFFDAE2FF);
@override
Color get snackBarTextSuccess => const Color(0xFF2E7356);
@override
Color get snackBarTextError => const Color(0xFFBC0D20);
@override
Color get snackBarTextInfo => const Color(0xFF143E8C);
// icons
@override
Color get bottomNavIconBack => const Color(0xFFFDBAC3);
@override
Color get bottomNavIconIcon => const Color(0xFFD12B41);
@override
Color get topNavIconPrimary => const Color(0xFFF95369);
@override
Color get topNavIconGreen => const Color(0xFF00A578);
@override
Color get topNavIconYellow => const Color(0xFFF8894B);
@override
Color get topNavIconRed => const Color(0xFFD91B1B);
@override
Color get settingsIconBack => const Color(0xFFFED7CA);
@override
Color get settingsIconIcon => const Color(0xFFF95369);
@override
Color get settingsIconBack2 => const Color(0xFF80D2BB);
@override
Color get settingsIconElement => const Color(0xFF00A578);
// text field
@override
Color get textFieldActiveBG => const Color(0xFFFFFBF6);
@override
Color get textFieldDefaultBG => const Color(0xFFFFF8EE);
@override
Color get textFieldErrorBG => const Color(0xFFFCBDBA);
@override
Color get textFieldSuccessBG => const Color(0xFFB7F0CC);
@override
Color get textFieldErrorBorder => textFieldErrorBG;
@override
Color get textFieldSuccessBorder => textFieldSuccessBG;
@override
Color get textFieldActiveSearchIconLeft => const Color(0xFF86898C);
@override
Color get textFieldDefaultSearchIconLeft => const Color(0xFF9A9DA0);
@override
Color get textFieldErrorSearchIconLeft => const Color(0xFFBC0D20);
@override
Color get textFieldSuccessSearchIconLeft => const Color(0xFF387D60);
@override
Color get textFieldActiveText => const Color(0xFF232323);
@override
Color get textFieldDefaultText => const Color(0xFF86898C);
@override
Color get textFieldErrorText => const Color(0xFF232323);
@override
Color get textFieldSuccessText => const Color(0xFF232323);
@override
Color get textFieldActiveLabel => const Color(0xFF86898C);
@override
Color get textFieldErrorLabel => const Color(0xFFBC0D20);
@override
Color get textFieldSuccessLabel => const Color(0xFF387D60);
@override
Color get textFieldActiveSearchIconRight => const Color(0xFFF95369);
@override
Color get textFieldDefaultSearchIconRight => const Color(0xFFF95369);
@override
Color get textFieldErrorSearchIconRight => const Color(0xFFBC0D20);
@override
Color get textFieldSuccessSearchIconRight => const Color(0xFF387D60);
// settings item level2
@override
Color get settingsItem2ActiveBG => const Color(0xFFFFFFFF);
@override
Color get settingsItem2ActiveText => const Color(0xFF232323);
@override
Color get settingsItem2ActiveSub => const Color(0xFFFED7CA);
// radio buttons
@override
Color get radioButtonIconBorder => const Color(0xFFF95369);
@override
Color get radioButtonIconBorderDisabled => const Color(0xFF8C8D97);
@override
Color get radioButtonBorderEnabled => const Color(0xFFF95369);
@override
Color get radioButtonBorderDisabled => const Color(0xFF8C8D97);
@override
Color get radioButtonIconCircle => const Color(0xFFF95369);
@override
Color get radioButtonIconEnabled => const Color(0xFFF95369);
@override
Color get radioButtonTextEnabled => const Color(0xFF42444B);
@override
Color get radioButtonTextDisabled => const Color(0xFF42444B);
@override
Color get radioButtonLabelEnabled => const Color(0xFF8C8F90);
@override
Color get radioButtonLabelDisabled => const Color(0xFF8C8F90);
// info text
@override
Color get infoItemBG => const Color(0xFFFFF8EE);
@override
Color get infoItemLabel => const Color(0xFF838788);
@override
Color get infoItemText => const Color(0xFF232323);
@override
Color get infoItemIcons => const Color(0xFF0A6CE1);
// popup
@override
Color get popupBG => const Color(0xFFFFF8EE);
// currency list
@override
Color get currencyListItemBG => const Color(0xFFFFEBE0);
// bottom nav
@override
Color get stackWalletBG => const Color(0xFFFFFFFF);
@override
Color get stackWalletMid => const Color(0xFF666666);
@override
Color get stackWalletBottom => const Color(0xFF232323);
@override
Color get bottomNavShadow => const Color(0xFFFE7160);
@override
Color get favoriteStarActive => infoItemIcons;
@override
Color get favoriteStarInactive => textSubtitle3;
@override
Color get splash => const Color(0xFF8E9192);
@override
Color get highlight => const Color(0xFFA9ACAC);
@override
Color get warningForeground => textDark;
@override
Color get warningBackground => const Color(0xFFFCBDBA);
@override
Color get loadingOverlayTextColor => const Color(0xFFF7F7F7);
@override
Color get myStackContactIconBG => textFieldDefaultBG;
@override
Color get textConfirmTotalAmount => const Color(0xFF232323);
@override
Color get textSelectedWordTableItem => const Color(0xFF232323);
@override
BoxShadow get standardBoxShadow => BoxShadow(
color: shadow,
spreadRadius: 3,
blurRadius: 4,
);
@override
BoxShadow? get homeViewButtonBarBoxShadow => null;
}

View file

@ -71,6 +71,10 @@ class LightColors extends StackColorTheme {
Color get buttonBackBorder => const Color(0xFF232323); Color get buttonBackBorder => const Color(0xFF232323);
@override @override
Color get buttonBackBorderDisabled => const Color(0xFFB6B6B6); Color get buttonBackBorderDisabled => const Color(0xFFB6B6B6);
@override
Color get buttonBackBorderSecondary => buttonBackSecondary;
@override
Color get buttonBackBorderSecondaryDisabled => buttonBackSecondaryDisabled;
@override @override
Color get numberBackDefault => const Color(0xFFFFFFFF); Color get numberBackDefault => const Color(0xFFFFFFFF);
@ -314,4 +318,18 @@ class LightColors extends StackColorTheme {
Color get textConfirmTotalAmount => const Color(0xFF232323); Color get textConfirmTotalAmount => const Color(0xFF232323);
@override @override
Color get textSelectedWordTableItem => const Color(0xFF232323); Color get textSelectedWordTableItem => const Color(0xFF232323);
@override
BoxShadow get standardBoxShadow => BoxShadow(
color: shadow,
spreadRadius: 3,
blurRadius: 4,
);
@override
BoxShadow? get homeViewButtonBarBoxShadow => BoxShadow(
color: shadow,
spreadRadius: 3,
blurRadius: 4,
);
} }

View file

@ -78,6 +78,10 @@ class OceanBreezeColors extends StackColorTheme {
Color get buttonBackBorder => const Color(0xFF227386); Color get buttonBackBorder => const Color(0xFF227386);
@override @override
Color get buttonBackBorderDisabled => const Color(0xFFBDD5DB); Color get buttonBackBorderDisabled => const Color(0xFFBDD5DB);
@override
Color get buttonBackBorderSecondary => buttonBackSecondary;
@override
Color get buttonBackBorderSecondaryDisabled => buttonBackSecondaryDisabled;
@override @override
Color get numberBackDefault => const Color(0xFFFFFFFF); Color get numberBackDefault => const Color(0xFFFFFFFF);
@ -321,4 +325,18 @@ class OceanBreezeColors extends StackColorTheme {
Color get textConfirmTotalAmount => const Color(0xFF232323); Color get textConfirmTotalAmount => const Color(0xFF232323);
@override @override
Color get textSelectedWordTableItem => const Color(0xFF232323); Color get textSelectedWordTableItem => const Color(0xFF232323);
@override
BoxShadow get standardBoxShadow => BoxShadow(
color: shadow,
spreadRadius: 3,
blurRadius: 4,
);
@override
BoxShadow? get homeViewButtonBarBoxShadow => BoxShadow(
color: shadow,
spreadRadius: 3,
blurRadius: 4,
);
} }

View file

@ -72,6 +72,10 @@ class OledBlackColors extends StackColorTheme {
Color get buttonBackBorder => const Color(0xFF6F9CE9); Color get buttonBackBorder => const Color(0xFF6F9CE9);
@override @override
Color get buttonBackBorderDisabled => const Color(0xFF212F46); Color get buttonBackBorderDisabled => const Color(0xFF212F46);
@override
Color get buttonBackBorderSecondary => buttonBackSecondary;
@override
Color get buttonBackBorderSecondaryDisabled => buttonBackSecondaryDisabled;
@override @override
Color get numberBackDefault => const Color(0xFF242424); Color get numberBackDefault => const Color(0xFF242424);
@ -316,4 +320,18 @@ class OledBlackColors extends StackColorTheme {
Color get textConfirmTotalAmount => const Color(0xFF144D35); Color get textConfirmTotalAmount => const Color(0xFF144D35);
@override @override
Color get textSelectedWordTableItem => const Color(0xFF143D8E); Color get textSelectedWordTableItem => const Color(0xFF143D8E);
@override
BoxShadow get standardBoxShadow => BoxShadow(
color: shadow,
spreadRadius: 3,
blurRadius: 4,
);
@override
BoxShadow? get homeViewButtonBarBoxShadow => BoxShadow(
color: shadow,
spreadRadius: 3,
blurRadius: 4,
);
} }

View file

@ -41,6 +41,8 @@ class StackColors extends ThemeExtension<StackColors> {
final Color buttonBackSecondaryDisabled; final Color buttonBackSecondaryDisabled;
final Color buttonBackBorder; final Color buttonBackBorder;
final Color buttonBackBorderDisabled; final Color buttonBackBorderDisabled;
final Color buttonBackBorderSecondary;
final Color buttonBackBorderSecondaryDisabled;
final Color numberBackDefault; final Color numberBackDefault;
final Color numpadBackDefault; final Color numpadBackDefault;
final Color bottomNavBack; final Color bottomNavBack;
@ -176,6 +178,9 @@ class StackColors extends ThemeExtension<StackColors> {
final Color textConfirmTotalAmount; final Color textConfirmTotalAmount;
final Color textSelectedWordTableItem; final Color textSelectedWordTableItem;
final BoxShadow standardBoxShadow;
final BoxShadow? homeViewButtonBarBoxShadow;
StackColors({ StackColors({
required this.themeType, required this.themeType,
required this.background, required this.background,
@ -208,6 +213,8 @@ class StackColors extends ThemeExtension<StackColors> {
required this.buttonBackSecondaryDisabled, required this.buttonBackSecondaryDisabled,
required this.buttonBackBorder, required this.buttonBackBorder,
required this.buttonBackBorderDisabled, required this.buttonBackBorderDisabled,
required this.buttonBackBorderSecondary,
required this.buttonBackBorderSecondaryDisabled,
required this.numberBackDefault, required this.numberBackDefault,
required this.numpadBackDefault, required this.numpadBackDefault,
required this.bottomNavBack, required this.bottomNavBack,
@ -312,6 +319,8 @@ class StackColors extends ThemeExtension<StackColors> {
required this.myStackContactIconBG, required this.myStackContactIconBG,
required this.textConfirmTotalAmount, required this.textConfirmTotalAmount,
required this.textSelectedWordTableItem, required this.textSelectedWordTableItem,
required this.standardBoxShadow,
required this.homeViewButtonBarBoxShadow,
}); });
factory StackColors.fromStackColorTheme(StackColorTheme colorTheme) { factory StackColors.fromStackColorTheme(StackColorTheme colorTheme) {
@ -347,6 +356,9 @@ class StackColors extends ThemeExtension<StackColors> {
buttonBackSecondaryDisabled: colorTheme.buttonBackSecondaryDisabled, buttonBackSecondaryDisabled: colorTheme.buttonBackSecondaryDisabled,
buttonBackBorder: colorTheme.buttonBackBorder, buttonBackBorder: colorTheme.buttonBackBorder,
buttonBackBorderDisabled: colorTheme.buttonBackBorderDisabled, buttonBackBorderDisabled: colorTheme.buttonBackBorderDisabled,
buttonBackBorderSecondary: colorTheme.buttonBackBorderSecondary,
buttonBackBorderSecondaryDisabled:
colorTheme.buttonBackBorderSecondaryDisabled,
numberBackDefault: colorTheme.numberBackDefault, numberBackDefault: colorTheme.numberBackDefault,
numpadBackDefault: colorTheme.numpadBackDefault, numpadBackDefault: colorTheme.numpadBackDefault,
bottomNavBack: colorTheme.bottomNavBack, bottomNavBack: colorTheme.bottomNavBack,
@ -453,6 +465,8 @@ class StackColors extends ThemeExtension<StackColors> {
myStackContactIconBG: colorTheme.myStackContactIconBG, myStackContactIconBG: colorTheme.myStackContactIconBG,
textConfirmTotalAmount: colorTheme.textConfirmTotalAmount, textConfirmTotalAmount: colorTheme.textConfirmTotalAmount,
textSelectedWordTableItem: colorTheme.textSelectedWordTableItem, textSelectedWordTableItem: colorTheme.textSelectedWordTableItem,
homeViewButtonBarBoxShadow: colorTheme.homeViewButtonBarBoxShadow,
standardBoxShadow: colorTheme.standardBoxShadow,
); );
} }
@ -489,6 +503,8 @@ class StackColors extends ThemeExtension<StackColors> {
Color? buttonBackSecondaryDisabled, Color? buttonBackSecondaryDisabled,
Color? buttonBackBorder, Color? buttonBackBorder,
Color? buttonBackBorderDisabled, Color? buttonBackBorderDisabled,
Color? buttonBackBorderSecondary,
Color? buttonBackBorderSecondaryDisabled,
Color? numberBackDefault, Color? numberBackDefault,
Color? numpadBackDefault, Color? numpadBackDefault,
Color? bottomNavBack, Color? bottomNavBack,
@ -593,6 +609,8 @@ class StackColors extends ThemeExtension<StackColors> {
Color? myStackContactIconBG, Color? myStackContactIconBG,
Color? textConfirmTotalAmount, Color? textConfirmTotalAmount,
Color? textSelectedWordTableItem, Color? textSelectedWordTableItem,
BoxShadow? homeViewButtonBarBoxShadow,
BoxShadow? standardBoxShadow,
}) { }) {
return StackColors( return StackColors(
themeType: themeType ?? this.themeType, themeType: themeType ?? this.themeType,
@ -629,6 +647,10 @@ class StackColors extends ThemeExtension<StackColors> {
buttonBackBorder: buttonBackBorder ?? this.buttonBackBorder, buttonBackBorder: buttonBackBorder ?? this.buttonBackBorder,
buttonBackBorderDisabled: buttonBackBorderDisabled:
buttonBackBorderDisabled ?? this.buttonBackBorderDisabled, buttonBackBorderDisabled ?? this.buttonBackBorderDisabled,
buttonBackBorderSecondary:
buttonBackBorderSecondary ?? this.buttonBackBorderSecondary,
buttonBackBorderSecondaryDisabled: buttonBackBorderSecondaryDisabled ??
this.buttonBackBorderSecondaryDisabled,
numberBackDefault: numberBackDefault ?? this.numberBackDefault, numberBackDefault: numberBackDefault ?? this.numberBackDefault,
numpadBackDefault: numpadBackDefault ?? this.numpadBackDefault, numpadBackDefault: numpadBackDefault ?? this.numpadBackDefault,
bottomNavBack: bottomNavBack ?? this.bottomNavBack, bottomNavBack: bottomNavBack ?? this.bottomNavBack,
@ -768,6 +790,9 @@ class StackColors extends ThemeExtension<StackColors> {
textConfirmTotalAmount ?? this.textConfirmTotalAmount, textConfirmTotalAmount ?? this.textConfirmTotalAmount,
textSelectedWordTableItem: textSelectedWordTableItem:
textSelectedWordTableItem ?? this.textSelectedWordTableItem, textSelectedWordTableItem ?? this.textSelectedWordTableItem,
homeViewButtonBarBoxShadow:
homeViewButtonBarBoxShadow ?? this.homeViewButtonBarBoxShadow,
standardBoxShadow: standardBoxShadow ?? this.standardBoxShadow,
); );
} }
@ -783,6 +808,8 @@ class StackColors extends ThemeExtension<StackColors> {
return StackColors( return StackColors(
themeType: other.themeType, themeType: other.themeType,
gradientBackground: other.gradientBackground, gradientBackground: other.gradientBackground,
homeViewButtonBarBoxShadow: other.homeViewButtonBarBoxShadow,
standardBoxShadow: other.standardBoxShadow,
background: Color.lerp( background: Color.lerp(
background, background,
other.background, other.background,
@ -928,6 +955,16 @@ class StackColors extends ThemeExtension<StackColors> {
other.buttonBackBorderDisabled, other.buttonBackBorderDisabled,
t, t,
)!, )!,
buttonBackBorderSecondary: Color.lerp(
buttonBackBorderSecondary,
other.buttonBackBorderSecondary,
t,
)!,
buttonBackBorderSecondaryDisabled: Color.lerp(
buttonBackBorderSecondaryDisabled,
other.buttonBackBorderSecondaryDisabled,
t,
)!,
numberBackDefault: Color.lerp( numberBackDefault: Color.lerp(
numberBackDefault, numberBackDefault,
other.numberBackDefault, other.numberBackDefault,
@ -1481,12 +1518,6 @@ class StackColors extends ThemeExtension<StackColors> {
static const _coin = CoinThemeColor(); static const _coin = CoinThemeColor();
BoxShadow get standardBoxShadow => BoxShadow(
color: shadow,
spreadRadius: 3,
blurRadius: 4,
);
Color colorForStatus(String status) { Color colorForStatus(String status) {
switch (status) { switch (status) {
case "New": case "New":
@ -1518,70 +1549,97 @@ class StackColors extends ThemeExtension<StackColors> {
} }
} }
ButtonStyle? getDeleteEnabledButtonColor(BuildContext context) => ButtonStyle? getDeleteEnabledButtonStyle(BuildContext context) =>
Theme.of(context).textButtonTheme.style?.copyWith( Theme.of(context).textButtonTheme.style?.copyWith(
backgroundColor: MaterialStateProperty.all<Color>( backgroundColor: MaterialStateProperty.all<Color>(
textFieldErrorBG, textFieldErrorBG,
), ),
); );
ButtonStyle? getDeleteDisabledButtonColor(BuildContext context) => ButtonStyle? getDeleteDisabledButtonStyle(BuildContext context) =>
Theme.of(context).textButtonTheme.style?.copyWith( Theme.of(context).textButtonTheme.style?.copyWith(
backgroundColor: MaterialStateProperty.all<Color>( backgroundColor: MaterialStateProperty.all<Color>(
buttonBackSecondaryDisabled, buttonBackSecondaryDisabled,
), ),
); );
ButtonStyle? getPrimaryEnabledButtonColor(BuildContext context) => ButtonStyle? getPrimaryEnabledButtonStyle(BuildContext context) =>
Theme.of(context).textButtonTheme.style?.copyWith( Theme.of(context).textButtonTheme.style?.copyWith(
backgroundColor: MaterialStateProperty.all<Color>( backgroundColor: MaterialStateProperty.all<Color>(
buttonBackPrimary, buttonBackPrimary,
), ),
); );
ButtonStyle? getPrimaryDisabledButtonColor(BuildContext context) => ButtonStyle? getPrimaryDisabledButtonStyle(BuildContext context) =>
Theme.of(context).textButtonTheme.style?.copyWith( Theme.of(context).textButtonTheme.style?.copyWith(
backgroundColor: MaterialStateProperty.all<Color>( backgroundColor: MaterialStateProperty.all<Color>(
buttonBackPrimaryDisabled, buttonBackPrimaryDisabled,
), ),
); );
ButtonStyle? getSecondaryEnabledButtonColor(BuildContext context) => ButtonStyle? getSecondaryEnabledButtonStyle(BuildContext context) =>
Theme.of(context).textButtonTheme.style?.copyWith( Theme.of(context).textButtonTheme.style?.copyWith(
backgroundColor: MaterialStateProperty.all<Color>( backgroundColor: MaterialStateProperty.all<Color>(
buttonBackSecondary, buttonBackSecondary,
), ),
shape: MaterialStateProperty.all(
RoundedRectangleBorder(
side: BorderSide(
color: buttonBackBorderSecondary,
width: 1,
),
borderRadius: BorderRadius.circular(10000),
),
),
); );
ButtonStyle? getSecondaryDisabledButtonColor(BuildContext context) => ButtonStyle? getSecondaryDisabledButtonStyle(BuildContext context) =>
Theme.of(context).textButtonTheme.style?.copyWith( Theme.of(context).textButtonTheme.style?.copyWith(
backgroundColor: MaterialStateProperty.all<Color>( backgroundColor: MaterialStateProperty.all<Color>(
buttonBackSecondaryDisabled, buttonBackSecondaryDisabled,
), ),
shape: MaterialStateProperty.all(
RoundedRectangleBorder(
side: BorderSide(
color: buttonBackBorderSecondaryDisabled,
width: 1,
),
borderRadius: BorderRadius.circular(10000),
),
),
); );
ButtonStyle? getSmallSecondaryEnabledButtonColor(BuildContext context) => ButtonStyle? getSmallSecondaryEnabledButtonStyle(BuildContext context) =>
Theme.of(context).textButtonTheme.style?.copyWith( Theme.of(context).textButtonTheme.style?.copyWith(
backgroundColor: MaterialStateProperty.all<Color>( backgroundColor: MaterialStateProperty.all<Color>(
textFieldDefaultBG, textFieldDefaultBG,
), ),
shape: MaterialStateProperty.all(
RoundedRectangleBorder(
side: BorderSide(
color: buttonBackBorderSecondary,
width: 1,
),
borderRadius: BorderRadius.circular(10000),
),
),
); );
ButtonStyle? getDesktopMenuButtonColor(BuildContext context) => ButtonStyle? getDesktopMenuButtonStyle(BuildContext context) =>
Theme.of(context).textButtonTheme.style?.copyWith( Theme.of(context).textButtonTheme.style?.copyWith(
backgroundColor: MaterialStateProperty.all<Color>( backgroundColor: MaterialStateProperty.all<Color>(
popupBG, popupBG,
), ),
); );
ButtonStyle? getDesktopMenuButtonColorSelected(BuildContext context) => ButtonStyle? getDesktopMenuButtonStyleSelected(BuildContext context) =>
Theme.of(context).textButtonTheme.style?.copyWith( Theme.of(context).textButtonTheme.style?.copyWith(
backgroundColor: MaterialStateProperty.all<Color>( backgroundColor: MaterialStateProperty.all<Color>(
textFieldDefaultBG, textFieldDefaultBG,
), ),
); );
ButtonStyle? getDesktopSettingsButtonColor(BuildContext context) => ButtonStyle? getDesktopSettingsButtonStyle(BuildContext context) =>
Theme.of(context).textButtonTheme.style?.copyWith( Theme.of(context).textButtonTheme.style?.copyWith(
backgroundColor: MaterialStateProperty.all<Color>( backgroundColor: MaterialStateProperty.all<Color>(
background, background,

View file

@ -17,6 +17,8 @@ class Background extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
Color? color; Color? color;
bool shouldPad = false;
switch (Theme.of(context).extension<StackColors>()!.themeType) { switch (Theme.of(context).extension<StackColors>()!.themeType) {
case ThemeType.light: case ThemeType.light:
case ThemeType.dark: case ThemeType.dark:
@ -24,6 +26,10 @@ class Background extends StatelessWidget {
color = Theme.of(context).extension<StackColors>()!.background; color = Theme.of(context).extension<StackColors>()!.background;
break; break;
case ThemeType.oceanBreeze: case ThemeType.oceanBreeze:
shouldPad = true;
color = null;
break;
case ThemeType.fruitSorbet:
color = null; color = null;
break; break;
} }
@ -42,10 +48,12 @@ class Background extends StatelessWidget {
children: [ children: [
Positioned.fill( Positioned.fill(
child: Padding( child: Padding(
padding: EdgeInsets.only( padding: shouldPad
? EdgeInsets.only(
top: MediaQuery.of(context).size.height * (1 / 8), top: MediaQuery.of(context).size.height * (1 / 8),
bottom: MediaQuery.of(context).size.height * (1 / 12), bottom: MediaQuery.of(context).size.height * (1 / 12),
), )
: const EdgeInsets.all(0),
child: SvgPicture.asset( child: SvgPicture.asset(
bgAsset!, bgAsset!,
fit: BoxFit.fill, fit: BoxFit.fill,

View file

@ -64,10 +64,10 @@ class DeleteButton extends StatelessWidget {
style: enabled style: enabled
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getDeleteEnabledButtonColor(context) .getDeleteEnabledButtonStyle(context)
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getDeleteDisabledButtonColor(context), .getDeleteDisabledButtonStyle(context),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [

View file

@ -136,10 +136,10 @@ class PrimaryButton extends StatelessWidget {
style: enabled style: enabled
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context) .getPrimaryEnabledButtonStyle(context)
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryDisabledButtonColor(context), .getPrimaryDisabledButtonStyle(context),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [

View file

@ -139,10 +139,10 @@ class SecondaryButton extends StatelessWidget {
style: enabled style: enabled
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context) .getSecondaryEnabledButtonStyle(context)
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryDisabledButtonColor(context), .getSecondaryDisabledButtonStyle(context),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [

View file

@ -20,6 +20,7 @@ class Expandable extends StatefulWidget {
this.animationDurationMultiplier = 1.0, this.animationDurationMultiplier = 1.0,
this.onExpandChanged, this.onExpandChanged,
this.controller, this.controller,
this.expandOverride,
}) : super(key: key); }) : super(key: key);
final Widget header; final Widget header;
@ -29,6 +30,7 @@ class Expandable extends StatefulWidget {
final double animationDurationMultiplier; final double animationDurationMultiplier;
final void Function(ExpandableState)? onExpandChanged; final void Function(ExpandableState)? onExpandChanged;
final ExpandableController? controller; final ExpandableController? controller;
final VoidCallback? expandOverride;
@override @override
State<Expandable> createState() => _ExpandableState(); State<Expandable> createState() => _ExpandableState();
@ -92,7 +94,7 @@ class _ExpandableState extends State<Expandable> with TickerProviderStateMixin {
MouseRegion( MouseRegion(
cursor: SystemMouseCursors.click, cursor: SystemMouseCursors.click,
child: GestureDetector( child: GestureDetector(
onTap: toggle, onTap: widget.expandOverride ?? toggle,
child: Container( child: Container(
color: Colors.transparent, color: Colors.transparent,
child: widget.header, child: widget.header,

View file

@ -307,7 +307,7 @@ class NodeOptionsSheet extends ConsumerWidget {
child: TextButton( child: TextButton(
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getSecondaryEnabledButtonColor(context), .getSecondaryEnabledButtonStyle(context),
onPressed: () { onPressed: () {
Navigator.pop(context); Navigator.pop(context);
Navigator.of(context).pushNamed( Navigator.of(context).pushNamed(
@ -337,10 +337,10 @@ class NodeOptionsSheet extends ConsumerWidget {
style: status == "Connected" style: status == "Connected"
? Theme.of(context) ? Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryDisabledButtonColor(context) .getPrimaryDisabledButtonStyle(context)
: Theme.of(context) : Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
onPressed: status == "Connected" onPressed: status == "Connected"
? null ? null
: () async { : () async {

View file

@ -193,7 +193,7 @@ class StackOkDialog extends StatelessWidget {
}, },
style: Theme.of(context) style: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.getPrimaryEnabledButtonColor(context), .getPrimaryEnabledButtonStyle(context),
child: Text( child: Text(
"Ok", "Ok",
style: STextStyles.button(context), style: STextStyles.button(context),

Some files were not shown because too many files have changed in this diff Show more