[{"data":1,"prerenderedAt":1098},["ShallowReactive",2],{"navigation":3,"$f1jvagmno7cfld":496,"\u002Fdocs\u002Futilities\u002Fscroll-fade":507,"surround-\u002Fdocs\u002Futilities\u002Fscroll-fade":1095},[4],{"title":5,"path":6,"stem":7,"children":8,"page":18},"Docs","\u002Fdocs","docs",[9,326,352,370,376,393,419,432],{"title":10,"path":11,"stem":12,"children":13,"new":18,"type":325},"Components","\u002Fdocs\u002Fcomponents","docs\u002F02.components",[14,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,221,225,229,233,237,241,245,249,253,257,261,265,269,273,277,281,285,289,293,297,301,305,309,313,317,321],{"title":15,"path":16,"stem":17,"new":18,"type":19,"children":-1},"Accordion","\u002Fdocs\u002Fcomponents\u002Faccordion","docs\u002Fcomponents\u002Faccordion",false,"component",{"title":21,"path":22,"stem":23,"new":18,"type":19,"children":-1},"Alert","\u002Fdocs\u002Fcomponents\u002Falert","docs\u002Fcomponents\u002Falert",{"title":25,"path":26,"stem":27,"new":18,"type":19,"children":-1},"Alert Dialog","\u002Fdocs\u002Fcomponents\u002Falert-dialog","docs\u002Fcomponents\u002Falert-dialog",{"title":29,"path":30,"stem":31,"new":18,"type":19,"children":-1},"Aspect Ratio","\u002Fdocs\u002Fcomponents\u002Faspect-ratio","docs\u002Fcomponents\u002Faspect-ratio",{"title":33,"path":34,"stem":35,"new":18,"type":19,"children":-1},"Attachment","\u002Fdocs\u002Fcomponents\u002Fattachment","docs\u002Fcomponents\u002Fattachment",{"title":37,"path":38,"stem":39,"new":18,"type":19,"children":-1},"Avatar","\u002Fdocs\u002Fcomponents\u002Favatar","docs\u002Fcomponents\u002Favatar",{"title":41,"path":42,"stem":43,"new":18,"type":19,"children":-1},"Badge","\u002Fdocs\u002Fcomponents\u002Fbadge","docs\u002Fcomponents\u002Fbadge",{"title":45,"path":46,"stem":47,"new":18,"type":19,"children":-1},"Breadcrumb","\u002Fdocs\u002Fcomponents\u002Fbreadcrumb","docs\u002Fcomponents\u002Fbreadcrumb",{"title":49,"path":50,"stem":51,"new":18,"type":19,"children":-1},"Bubble","\u002Fdocs\u002Fcomponents\u002Fbubble","docs\u002Fcomponents\u002Fbubble",{"title":53,"path":54,"stem":55,"new":18,"type":19,"children":-1},"Button","\u002Fdocs\u002Fcomponents\u002Fbutton","docs\u002Fcomponents\u002Fbutton",{"title":57,"path":58,"stem":59,"new":18,"type":19,"children":-1},"Button Group","\u002Fdocs\u002Fcomponents\u002Fbutton-group","docs\u002Fcomponents\u002Fbutton-group",{"title":61,"path":62,"stem":63,"new":18,"type":19,"children":-1},"Calendar","\u002Fdocs\u002Fcomponents\u002Fcalendar","docs\u002Fcomponents\u002Fcalendar",{"title":65,"path":66,"stem":67,"new":18,"type":19,"children":-1},"Card","\u002Fdocs\u002Fcomponents\u002Fcard","docs\u002Fcomponents\u002Fcard",{"title":69,"path":70,"stem":71,"new":18,"type":19,"children":-1},"Carousel","\u002Fdocs\u002Fcomponents\u002Fcarousel","docs\u002Fcomponents\u002Fcarousel",{"title":73,"path":74,"stem":75,"new":18,"type":19,"children":-1},"Chart","\u002Fdocs\u002Fcomponents\u002Fchart","docs\u002Fcomponents\u002Fchart",{"title":77,"path":78,"stem":79,"new":18,"type":19,"children":-1},"Checkbox","\u002Fdocs\u002Fcomponents\u002Fcheckbox","docs\u002Fcomponents\u002Fcheckbox",{"title":81,"path":82,"stem":83,"new":18,"type":19,"children":-1},"Collapsible","\u002Fdocs\u002Fcomponents\u002Fcollapsible","docs\u002Fcomponents\u002Fcollapsible",{"title":85,"path":86,"stem":87,"new":18,"type":19,"children":-1},"ColorPicker","\u002Fdocs\u002Fcomponents\u002Fcolor-picker","docs\u002Fcomponents\u002Fcolor-picker",{"title":89,"path":90,"stem":91,"new":18,"type":19,"children":-1},"Combobox","\u002Fdocs\u002Fcomponents\u002Fcombobox","docs\u002Fcomponents\u002Fcombobox",{"title":93,"path":94,"stem":95,"new":18,"type":19,"children":-1},"Command","\u002Fdocs\u002Fcomponents\u002Fcommand","docs\u002Fcomponents\u002Fcommand",{"title":97,"path":98,"stem":99,"new":18,"type":19,"children":-1},"Context Menu","\u002Fdocs\u002Fcomponents\u002Fcontext-menu","docs\u002Fcomponents\u002Fcontext-menu",{"title":101,"path":102,"stem":103,"new":18,"type":19,"children":-1},"Curves","\u002Fdocs\u002Fcomponents\u002Fcurves","docs\u002Fcomponents\u002Fcurves",{"title":105,"path":106,"stem":107,"new":18,"type":19,"children":-1},"Data Table","\u002Fdocs\u002Fcomponents\u002Fdata-table","docs\u002Fcomponents\u002Fdata-table",{"title":109,"path":110,"stem":111,"new":18,"type":19,"children":-1},"Date Picker","\u002Fdocs\u002Fcomponents\u002Fdate-picker","docs\u002Fcomponents\u002Fdate-picker",{"title":113,"path":114,"stem":115,"new":18,"type":19,"children":-1},"Dialog","\u002Fdocs\u002Fcomponents\u002Fdialog","docs\u002Fcomponents\u002Fdialog",{"title":117,"path":118,"stem":119,"new":18,"type":19,"children":-1},"Drawer","\u002Fdocs\u002Fcomponents\u002Fdrawer","docs\u002Fcomponents\u002Fdrawer",{"title":121,"path":122,"stem":123,"new":18,"type":19,"children":-1},"Dropdown Menu","\u002Fdocs\u002Fcomponents\u002Fdropdown-menu","docs\u002Fcomponents\u002Fdropdown-menu",{"title":125,"path":126,"stem":127,"new":18,"type":19,"children":-1},"Empty","\u002Fdocs\u002Fcomponents\u002Fempty","docs\u002Fcomponents\u002Fempty",{"title":129,"path":130,"stem":131,"new":18,"type":19,"children":-1},"Field","\u002Fdocs\u002Fcomponents\u002Ffield","docs\u002Fcomponents\u002Ffield",{"title":133,"path":134,"stem":135,"new":18,"type":19,"children":-1},"FontPicker","\u002Fdocs\u002Fcomponents\u002Ffont-picker","docs\u002Fcomponents\u002Ffont-picker",{"title":137,"path":138,"stem":139,"new":18,"type":19,"children":-1},"Form","\u002Fdocs\u002Fcomponents\u002Fform","docs\u002Fcomponents\u002Fform",{"title":141,"path":142,"stem":143,"new":18,"type":19,"children":-1},"Gradient Picker","\u002Fdocs\u002Fcomponents\u002Fgradient-picker","docs\u002Fcomponents\u002Fgradient-picker",{"title":145,"path":146,"stem":147,"new":18,"type":19,"children":-1},"Hover Card","\u002Fdocs\u002Fcomponents\u002Fhover-card","docs\u002Fcomponents\u002Fhover-card",{"title":149,"path":150,"stem":151,"new":18,"type":19,"children":-1},"Input","\u002Fdocs\u002Fcomponents\u002Finput","docs\u002Fcomponents\u002Finput",{"title":153,"path":154,"stem":155,"new":18,"type":19,"children":-1},"Input Group","\u002Fdocs\u002Fcomponents\u002Finput-group","docs\u002Fcomponents\u002Finput-group",{"title":157,"path":158,"stem":159,"new":18,"type":19,"children":-1},"Input OTP","\u002Fdocs\u002Fcomponents\u002Finput-otp","docs\u002Fcomponents\u002Finput-otp",{"title":161,"path":162,"stem":163,"new":18,"type":19,"children":-1},"Item","\u002Fdocs\u002Fcomponents\u002Fitem","docs\u002Fcomponents\u002Fitem",{"title":165,"path":166,"stem":167,"new":18,"type":19,"children":-1},"Kbd","\u002Fdocs\u002Fcomponents\u002Fkbd","docs\u002Fcomponents\u002Fkbd",{"title":169,"path":170,"stem":171,"new":18,"type":19,"children":-1},"Label","\u002Fdocs\u002Fcomponents\u002Flabel","docs\u002Fcomponents\u002Flabel",{"title":173,"path":174,"stem":175,"new":18,"type":19,"children":-1},"Marker","\u002Fdocs\u002Fcomponents\u002Fmarker","docs\u002Fcomponents\u002Fmarker",{"title":177,"path":178,"stem":179,"new":18,"type":19,"children":-1},"Menubar","\u002Fdocs\u002Fcomponents\u002Fmenubar","docs\u002Fcomponents\u002Fmenubar",{"title":181,"path":182,"stem":183,"new":18,"type":19,"children":-1},"Message","\u002Fdocs\u002Fcomponents\u002Fmessage","docs\u002Fcomponents\u002Fmessage",{"title":185,"path":186,"stem":187,"new":18,"type":19,"children":-1},"Message Scroller","\u002Fdocs\u002Fcomponents\u002Fmessage-scroller","docs\u002Fcomponents\u002Fmessage-scroller",{"title":189,"path":190,"stem":191,"new":18,"type":19,"children":-1},"Native Select","\u002Fdocs\u002Fcomponents\u002Fnative-select","docs\u002Fcomponents\u002Fnative-select",{"title":193,"path":194,"stem":195,"new":18,"type":19,"children":-1},"Navigation Menu","\u002Fdocs\u002Fcomponents\u002Fnavigation-menu","docs\u002Fcomponents\u002Fnavigation-menu",{"title":197,"path":198,"stem":199,"new":18,"type":19,"children":-1},"Number Field","\u002Fdocs\u002Fcomponents\u002Fnumber-field","docs\u002Fcomponents\u002Fnumber-field",{"title":201,"path":202,"stem":203,"new":18,"type":19,"children":-1},"Pagination","\u002Fdocs\u002Fcomponents\u002Fpagination","docs\u002Fcomponents\u002Fpagination",{"title":205,"path":206,"stem":207,"new":18,"type":19,"children":-1},"Pin Input","\u002Fdocs\u002Fcomponents\u002Fpin-input","docs\u002Fcomponents\u002Fpin-input",{"title":209,"path":210,"stem":211,"new":18,"type":19,"children":-1},"Popover","\u002Fdocs\u002Fcomponents\u002Fpopover","docs\u002Fcomponents\u002Fpopover",{"title":213,"path":214,"stem":215,"new":18,"type":19,"children":-1},"Progress","\u002Fdocs\u002Fcomponents\u002Fprogress","docs\u002Fcomponents\u002Fprogress",{"title":217,"path":218,"stem":219,"new":220,"type":19,"children":-1},"Questionnaire","\u002Fdocs\u002Fcomponents\u002Fquestionnaire","docs\u002Fcomponents\u002Fquestionnaire",true,{"title":222,"path":223,"stem":224,"new":18,"type":19,"children":-1},"Radio Group","\u002Fdocs\u002Fcomponents\u002Fradio-group","docs\u002Fcomponents\u002Fradio-group",{"title":226,"path":227,"stem":228,"new":18,"type":19,"children":-1},"Range Calendar","\u002Fdocs\u002Fcomponents\u002Frange-calendar","docs\u002Fcomponents\u002Frange-calendar",{"title":230,"path":231,"stem":232,"new":18,"type":19,"children":-1},"Resizable","\u002Fdocs\u002Fcomponents\u002Fresizable","docs\u002Fcomponents\u002Fresizable",{"title":234,"path":235,"stem":236,"new":18,"type":19,"children":-1},"Scroll Area","\u002Fdocs\u002Fcomponents\u002Fscroll-area","docs\u002Fcomponents\u002Fscroll-area",{"title":238,"path":239,"stem":240,"new":18,"type":19,"children":-1},"Select","\u002Fdocs\u002Fcomponents\u002Fselect","docs\u002Fcomponents\u002Fselect",{"title":242,"path":243,"stem":244,"new":18,"type":19,"children":-1},"Separator","\u002Fdocs\u002Fcomponents\u002Fseparator","docs\u002Fcomponents\u002Fseparator",{"title":246,"path":247,"stem":248,"new":18,"type":19,"children":-1},"Sheet","\u002Fdocs\u002Fcomponents\u002Fsheet","docs\u002Fcomponents\u002Fsheet",{"title":250,"path":251,"stem":252,"new":18,"type":19,"children":-1},"Sidebar","\u002Fdocs\u002Fcomponents\u002Fsidebar","docs\u002Fcomponents\u002Fsidebar",{"title":254,"path":255,"stem":256,"new":18,"type":19,"children":-1},"Skeleton","\u002Fdocs\u002Fcomponents\u002Fskeleton","docs\u002Fcomponents\u002Fskeleton",{"title":258,"path":259,"stem":260,"new":18,"type":19,"children":-1},"Slider","\u002Fdocs\u002Fcomponents\u002Fslider","docs\u002Fcomponents\u002Fslider",{"title":262,"path":263,"stem":264,"new":18,"type":19,"children":-1},"Sonner","\u002Fdocs\u002Fcomponents\u002Fsonner","docs\u002Fcomponents\u002Fsonner",{"title":266,"path":267,"stem":268,"new":18,"type":19,"children":-1},"Spinner","\u002Fdocs\u002Fcomponents\u002Fspinner","docs\u002Fcomponents\u002Fspinner",{"title":270,"path":271,"stem":272,"new":18,"type":19,"children":-1},"Stepper","\u002Fdocs\u002Fcomponents\u002Fstepper","docs\u002Fcomponents\u002Fstepper",{"title":274,"path":275,"stem":276,"new":18,"type":19,"children":-1},"Switch","\u002Fdocs\u002Fcomponents\u002Fswitch","docs\u002Fcomponents\u002Fswitch",{"title":278,"path":279,"stem":280,"new":18,"type":19,"children":-1},"Table","\u002Fdocs\u002Fcomponents\u002Ftable","docs\u002Fcomponents\u002Ftable",{"title":282,"path":283,"stem":284,"new":18,"type":19,"children":-1},"Tabs","\u002Fdocs\u002Fcomponents\u002Ftabs","docs\u002Fcomponents\u002Ftabs",{"title":286,"path":287,"stem":288,"new":18,"type":19,"children":-1},"Tags Input","\u002Fdocs\u002Fcomponents\u002Ftags-input","docs\u002Fcomponents\u002Ftags-input",{"title":290,"path":291,"stem":292,"new":18,"type":19,"children":-1},"Textarea","\u002Fdocs\u002Fcomponents\u002Ftextarea","docs\u002Fcomponents\u002Ftextarea",{"title":294,"path":295,"stem":296,"new":18,"type":19,"children":-1},"Toast","\u002Fdocs\u002Fcomponents\u002Ftoast","docs\u002Fcomponents\u002Ftoast",{"title":298,"path":299,"stem":300,"new":18,"type":19,"children":-1},"Toggle","\u002Fdocs\u002Fcomponents\u002Ftoggle","docs\u002Fcomponents\u002Ftoggle",{"title":302,"path":303,"stem":304,"new":18,"type":19,"children":-1},"Toggle Group","\u002Fdocs\u002Fcomponents\u002Ftoggle-group","docs\u002Fcomponents\u002Ftoggle-group",{"title":306,"path":307,"stem":308,"new":18,"type":19,"children":-1},"Tool Rail","\u002Fdocs\u002Fcomponents\u002Ftool-rail","docs\u002Fcomponents\u002Ftool-rail",{"title":310,"path":311,"stem":312,"new":18,"type":19,"children":-1},"Tooltip","\u002Fdocs\u002Fcomponents\u002Ftooltip","docs\u002Fcomponents\u002Ftooltip",{"title":314,"path":315,"stem":316,"new":18,"type":19,"children":-1},"Tree","\u002Fdocs\u002Fcomponents\u002Ftree","docs\u002Fcomponents\u002Ftree",{"title":318,"path":319,"stem":320,"new":18,"type":19,"children":-1},"Typography","\u002Fdocs\u002Fcomponents\u002Ftypography","docs\u002Fcomponents\u002Ftypography",{"title":322,"path":323,"stem":324,"new":18,"type":19,"children":-1},"Vector Pad","\u002Fdocs\u002Fcomponents\u002Fvector-pad","docs\u002Fcomponents\u002Fvector-pad","group",{"title":327,"path":328,"stem":329,"children":330,"new":18,"type":325},"Installation","\u002Fdocs\u002Finstallation","docs\u002F02.installation",[331,336,340,344,348],{"title":332,"path":333,"stem":334,"new":18,"type":335,"children":-1},"Vite","\u002Fdocs\u002Finstallation\u002Fvite","docs\u002Finstallation\u002F01.vite","page",{"title":337,"path":338,"stem":339,"new":18,"type":335,"children":-1},"Nuxt","\u002Fdocs\u002Finstallation\u002Fnuxt","docs\u002Finstallation\u002F02.nuxt",{"title":341,"path":342,"stem":343,"new":18,"type":335,"children":-1},"Astro","\u002Fdocs\u002Finstallation\u002Fastro","docs\u002Finstallation\u002F03.astro",{"title":345,"path":346,"stem":347,"new":18,"type":335,"children":-1},"Laravel","\u002Fdocs\u002Finstallation\u002Flaravel","docs\u002Finstallation\u002F04.laravel",{"title":349,"path":350,"stem":351,"new":18,"type":335,"children":-1},"Manual Installation","\u002Fdocs\u002Finstallation\u002Fmanual","docs\u002Finstallation\u002F05.manual",{"title":353,"path":354,"stem":355,"children":356,"new":18,"type":325},"Dark Mode","\u002Fdocs\u002Fdark-mode","docs\u002F05.dark-mode",[357,360,363,367],{"title":332,"path":358,"stem":359,"new":18,"type":335,"children":-1},"\u002Fdocs\u002Fdark-mode\u002Fvite","docs\u002Fdark-mode\u002F01.vite",{"title":337,"path":361,"stem":362,"new":18,"type":335,"children":-1},"\u002Fdocs\u002Fdark-mode\u002Fnuxt","docs\u002Fdark-mode\u002F02.nuxt",{"title":364,"path":365,"stem":366,"new":18,"type":335,"children":-1},"Vitepress","\u002Fdocs\u002Fdark-mode\u002Fvitepress","docs\u002Fdark-mode\u002F03.vitepress",{"title":341,"path":368,"stem":369,"new":18,"type":335,"children":-1},"\u002Fdocs\u002Fdark-mode\u002Fastro","docs\u002Fdark-mode\u002F04.astro",{"title":371,"path":372,"stem":373,"children":374,"new":18,"type":325},"Directory","\u002Fdocs\u002Fdirectory","docs\u002Fdirectory\u002Findex",[375],{"title":371,"path":372,"stem":373,"new":18,"type":335,"children":-1},{"title":377,"path":378,"stem":379,"children":380,"new":18,"type":325},"Forms","\u002Fdocs\u002Fforms","docs\u002Fforms",[381,385,389],{"title":382,"path":383,"stem":384,"new":18,"type":335,"children":-1},"VeeValidate","\u002Fdocs\u002Fforms\u002Fvee-validate","docs\u002Fforms\u002F01.vee-validate",{"title":386,"path":387,"stem":388,"new":18,"type":335,"children":-1},"TanStack Form","\u002Fdocs\u002Fforms\u002Ftanstack-form","docs\u002Fforms\u002F02.tanstack-form",{"title":390,"path":391,"stem":392,"new":18,"type":335,"children":-1},"Formisch","\u002Fdocs\u002Fforms\u002Fformisch","docs\u002Fforms\u002F03.formisch",{"title":394,"path":395,"stem":396,"children":397,"new":18,"type":325},"Registry","\u002Fdocs\u002Fregistry","docs\u002Fregistry\u002Findex",[398,399,403,407,411,415],{"title":394,"path":395,"stem":396,"new":18,"type":335,"children":-1},{"title":400,"path":401,"stem":402,"new":18,"type":335,"children":-1},"Examples","\u002Fdocs\u002Fregistry\u002Fexamples","docs\u002Fregistry\u002Fexamples",{"title":404,"path":405,"stem":406,"new":18,"type":335,"children":-1},"FAQ","\u002Fdocs\u002Fregistry\u002Ffaq","docs\u002Fregistry\u002Ffaq",{"title":408,"path":409,"stem":410,"new":18,"type":335,"children":-1},"Getting Started","\u002Fdocs\u002Fregistry\u002Fgetting-started","docs\u002Fregistry\u002Fgetting-started",{"title":412,"path":413,"stem":414,"new":18,"type":335,"children":-1},"registry-item.json","\u002Fdocs\u002Fregistry\u002Fregistry-item-json","docs\u002Fregistry\u002Fregistry-item-json",{"title":416,"path":417,"stem":418,"new":18,"type":335,"children":-1},"registry.json","\u002Fdocs\u002Fregistry\u002Fregistry-json","docs\u002Fregistry\u002Fregistry-json",{"title":420,"path":421,"stem":422,"children":423,"page":18,"type":325},"Utilities","\u002Fdocs\u002Futilities","docs\u002Futilities",[424,428],{"title":425,"path":426,"stem":427,"new":18,"type":335,"children":-1},"scroll-fade","\u002Fdocs\u002Futilities\u002Fscroll-fade","docs\u002Futilities\u002Fscroll-fade",{"title":429,"path":430,"stem":431,"new":18,"type":335,"children":-1},"shimmer","\u002Fdocs\u002Futilities\u002Fshimmer","docs\u002Futilities\u002Fshimmer",{"path":6,"stem":7,"title":433,"type":325,"children":434},"Get Started",[435,439,446,450,454,460,464,468,472,476,480,484,488,492],{"title":436,"path":437,"stem":438,"new":18,"type":335,"children":-1},"Introduction","\u002Fdocs\u002Fintroduction","docs\u002F01.introduction",{"title":327,"path":328,"stem":329,"children":440,"new":18,"type":325},[441,442,443,444,445],{"title":332,"path":333,"stem":334,"new":18,"type":335,"children":-1},{"title":337,"path":338,"stem":339,"new":18,"type":335,"children":-1},{"title":341,"path":342,"stem":343,"new":18,"type":335,"children":-1},{"title":345,"path":346,"stem":347,"new":18,"type":335,"children":-1},{"title":349,"path":350,"stem":351,"new":18,"type":335,"children":-1},{"title":447,"path":448,"stem":449,"new":18,"type":335,"children":-1},"components.json","\u002Fdocs\u002Fcomponents-json","docs\u002F03.components-json",{"title":451,"path":452,"stem":453,"new":18,"type":335,"children":-1},"Theming","\u002Fdocs\u002Ftheming","docs\u002F04.theming",{"title":353,"path":354,"stem":355,"children":455,"new":18,"type":325},[456,457,458,459],{"title":332,"path":358,"stem":359,"new":18,"type":335,"children":-1},{"title":337,"path":361,"stem":362,"new":18,"type":335,"children":-1},{"title":364,"path":365,"stem":366,"new":18,"type":335,"children":-1},{"title":341,"path":368,"stem":369,"new":18,"type":335,"children":-1},{"title":461,"path":462,"stem":463,"new":18,"type":335,"children":-1},"CLI","\u002Fdocs\u002Fcli","docs\u002F06.cli",{"title":465,"path":466,"stem":467,"new":18,"type":335,"children":-1},"JavaScript","\u002Fdocs\u002Fjavascript","docs\u002F07.javascript",{"title":469,"path":470,"stem":471,"new":18,"type":335,"children":-1},"RTL","\u002Fdocs\u002Frtl","docs\u002F08.rtl",{"title":473,"path":474,"stem":475,"new":18,"type":335,"children":-1},"Figma","\u002Fdocs\u002Ffigma","docs\u002F09.figma",{"title":477,"path":478,"stem":479,"new":18,"type":335,"children":-1},"Changelog","\u002Fdocs\u002Fchangelog","docs\u002F10.changelog",{"title":481,"path":482,"stem":483,"new":18,"type":335,"children":-1},"Legacy Docs","\u002Fdocs\u002Flegacy","docs\u002F11.legacy",{"title":485,"path":486,"stem":487,"new":18,"type":335,"children":-1},"Skills","\u002Fdocs\u002Fskills","docs\u002Fskills",{"title":489,"path":490,"stem":491,"new":18,"type":335,"children":-1},"Typeset","\u002Fdocs\u002Ftypeset","docs\u002Ftypeset",{"title":420,"path":421,"stem":422,"children":493,"page":18,"type":325},[494,495],{"title":425,"path":426,"stem":427,"new":18,"type":335,"children":-1},{"title":429,"path":430,"stem":431,"new":18,"type":335,"children":-1},{"repo":497},{"id":498,"name":499,"repo":500,"description":501,"createdAt":502,"updatedAt":503,"pushedAt":504,"stars":505,"watchers":505,"forks":505,"defaultBranch":506},1338772706,"hui-vue","Clientik\u002Fhui-vue",null,"2026-08-18T19:33:07Z","2026-08-25T22:44:28Z","2026-08-25T22:44:11Z",0,"main",{"id":508,"title":425,"body":509,"description":1089,"extension":1090,"links":501,"meta":1091,"navigation":220,"new":18,"path":426,"rawbody":1092,"seo":1093,"stem":427,"__hash__":1094},"content\u002Fdocs\u002Futilities\u002Fscroll-fade.md",{"type":510,"value":511,"toc":1077},"minimark",[512,517,521,537,543,553,556,564,568,783,796,804,807,820,830,849,853,859,862,866,875,879,885,893,897,900,903,909,928,932,950,953,959,962,968,987,993,1004,1015,1021,1025,1030,1036,1039,1043,1056,1066,1069,1074],[513,514],"component-preview",{"name":515,"previewClass":516},"ScrollFadeDemo","h-auto",[518,519,327],"h2",{"id":520},"installation",[522,523,524,525,529,530,532,533,536],"p",{},"If your project was set up with ",[526,527,528],"code",{},"npx hui-kit@latest init",", you already have ",[526,531,425],{},". It ships with the ",[526,534,535],{},"hui-kit"," package, which the CLI imports in your global CSS file.",[522,538,539,540,542],{},"Otherwise, install the ",[526,541,535],{}," package:",[544,545,551],"pre",{"className":546,"code":548,"language":549,"meta":550},[547],"language-bash","npm install hui-kit\n","bash","",[526,552,548],{"__ignoreMap":550},[522,554,555],{},"Then import the shared utilities in your global CSS file:",[544,557,562],{"className":558,"code":560,"language":561,"meta":550},[559],"language-css","@import \"tailwindcss\";\n@import \"hui-kit\u002Ftailwind.css\";\n","css",[526,563,560],{"__ignoreMap":550},[518,565,567],{"id":566},"usage","Usage",[569,570,571,584],"table",{},[572,573,574],"thead",{},[575,576,577,581],"tr",{},[578,579,580],"th",{},"Class",[578,582,583],{},"Styles",[585,586,587,606,621,638,652,666,681,695,709,723,735,747,759,771],"tbody",{},[575,588,589,594],{},[590,591,592],"td",{},[526,593,425],{},[590,595,596,599,600,599,603],{},[526,597,598],{},"mask-image: var(--scroll-fade-mask, var(--scroll-fade-block));"," ",[601,602],"br",{},[526,604,605],{},"animation-timeline: scroll(self y);",[575,607,608,613],{},[590,609,610],{},[526,611,612],{},"scroll-fade-y",[590,614,615,599,617,599,619],{},[526,616,598],{},[601,618],{},[526,620,605],{},[575,622,623,628],{},[590,624,625],{},[526,626,627],{},"scroll-fade-x",[590,629,630,599,633,599,635],{},[526,631,632],{},"mask-image: var(--scroll-fade-mask, var(--scroll-fade-inline));",[601,634],{},[526,636,637],{},"animation-timeline: scroll(self inline);",[575,639,640,645],{},[590,641,642],{},[526,643,644],{},"scroll-fade-t",[590,646,647,648,599,650],{},"Fade mask on the top edge. ",[601,649],{},[526,651,605],{},[575,653,654,659],{},[590,655,656],{},[526,657,658],{},"scroll-fade-b",[590,660,661,662,599,664],{},"Fade mask on the bottom edge. ",[601,663],{},[526,665,605],{},[575,667,668,673],{},[590,669,670],{},[526,671,672],{},"scroll-fade-l",[590,674,675,676,599,678],{},"Fade mask on the left edge. ",[601,677],{},[526,679,680],{},"animation-timeline: scroll(self x);",[575,682,683,688],{},[590,684,685],{},[526,686,687],{},"scroll-fade-r",[590,689,690,691,599,693],{},"Fade mask on the right edge. ",[601,692],{},[526,694,680],{},[575,696,697,702],{},[590,698,699],{},[526,700,701],{},"scroll-fade-s",[590,703,704,705,599,707],{},"Fade mask on the start edge, mirrors in RTL. ",[601,706],{},[526,708,637],{},[575,710,711,716],{},[590,712,713],{},[526,714,715],{},"scroll-fade-e",[590,717,718,719,599,721],{},"Fade mask on the end edge, mirrors in RTL. ",[601,720],{},[526,722,637],{},[575,724,725,730],{},[590,726,727],{},[526,728,729],{},"scroll-fade-\u003Cnumber>",[590,731,732],{},[526,733,734],{},"--scroll-fade-size: calc(var(--spacing) * \u003Cnumber>);",[575,736,737,742],{},[590,738,739],{},[526,740,741],{},"scroll-fade-[\u003Cvalue>]",[590,743,744],{},[526,745,746],{},"--scroll-fade-size: \u003Cvalue>;",[575,748,749,754],{},[590,750,751],{},[526,752,753],{},"scroll-fade-{t,b,s,e}-\u003Cnumber>",[590,755,756],{},[526,757,758],{},"--scroll-fade-{t,b,s,e}-size: calc(var(--spacing) * \u003Cnumber>);",[575,760,761,766],{},[590,762,763],{},[526,764,765],{},"scroll-fade-{t,b,s,e}-[\u003Cvalue>]",[590,767,768],{},[526,769,770],{},"--scroll-fade-{t,b,s,e}-size: \u003Cvalue>;",[575,772,773,778],{},[590,774,775],{},[526,776,777],{},"scroll-fade-none",[590,779,780],{},[526,781,782],{},"--scroll-fade-mask: none;",[522,784,785,786,788,789,791,792,795],{},"Add ",[526,787,425],{}," or ",[526,790,612],{}," to the scroll container, i.e. the element that has ",[526,793,794],{},"overflow-y-auto",".",[544,797,802],{"className":798,"code":800,"language":801,"meta":550},[799],"language-vue","\u003Ctemplate>\n  \u003Cdiv class=\"scroll-fade overflow-y-auto\">\n    \u003C!-- ... -->\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n","vue",[526,803,800],{"__ignoreMap":550},[522,805,806],{},"The fade is scroll-aware and tracks the scroll position:",[808,809,810,814,817],"ul",{},[811,812,813],"li",{},"At rest, the top edge is crisp and the bottom edge fades to hint at more content.",[811,815,816],{},"As you scroll, a fade appears at the top and both edges stay faded mid-scroll.",[811,818,819],{},"At the end, the bottom edge sharpens to show you have reached the last item.",[522,821,822,823,826,827,829],{},"The fade is applied with ",[526,824,825],{},"mask-image",", so it dissolves the content itself rather than overlaying a color. The mask uses a linear fade from transparent to black, so it adapts to any background without configuration. If your scroll area sits inside a card, put the background and border on a wrapper and ",[526,828,425],{}," on the inner scroller, so the fade dissolves the content and not the card.",[522,831,832,833,839,840,845,846,848],{},"The ",[834,835,836],"a",{"href":235},[526,837,838],{},"ScrollArea"," and ",[834,841,842],{"href":186},[526,843,844],{},"MessageScroller"," components can use ",[526,847,425],{}," on their scrollable viewport.",[518,850,852],{"id":851},"no-overflow-no-fade","No Overflow, No Fade",[522,854,855,856,858],{},"If the content does not overflow, no fade is shown. You can apply ",[526,857,425],{}," to any list without checking whether it scrolls.",[513,860],{"name":861,"previewClass":516},"ScrollFadeOverflowDemo",[518,863,865],{"id":864},"horizontal-scrolling","Horizontal Scrolling",[522,867,868,869,871,872,795],{},"Use ",[526,870,627],{}," on containers that scroll horizontally, i.e. the element that has ",[526,873,874],{},"overflow-x-auto",[513,876],{"name":877,"previewClass":878},"ScrollFadeHorizontalDemo","h-64",[544,880,883],{"className":881,"code":882,"language":801,"meta":550},[799],"\u003Ctemplate>\n  \u003Cdiv class=\"flex scroll-fade-x overflow-x-auto\">\n    \u003C!-- ... -->\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[526,884,882],{"__ignoreMap":550},[522,886,887,888,839,890,892],{},"The horizontal fade is direction-aware. In RTL layouts, the crisp edge and the fade follow the reading direction with no extra classes needed. ",[526,889,729],{},[526,891,777],{}," work the same for both axes.",[518,894,896],{"id":895},"edge-fades","Edge Fades",[522,898,899],{},"Use edge utilities when only one edge should track the scroll position.",[513,901],{"name":902,"previewClass":516},"ScrollFadeEdgeDemo",[544,904,907],{"className":905,"code":906,"language":801,"meta":550},[799],"\u003Ctemplate>\n  \u003Cdiv class=\"scroll-fade-b overflow-y-auto\">\n    \u003C!-- ... -->\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[526,908,906],{"__ignoreMap":550},[522,910,911,912,914,915,914,917,919,920,922,923,839,925,927],{},"The edge utilities are scroll-aware. Start edges fade in after you scroll away from the start, and end edges fade out when you reach the end. Use ",[526,913,644],{},", ",[526,916,658],{},[526,918,672],{},", and ",[526,921,687],{}," for physical edges. Use ",[526,924,701],{},[526,926,715],{}," for logical inline edges that mirror in RTL.",[518,929,931],{"id":930},"fade-size","Fade Size",[522,933,934,935,938,939,942,943,945,946,949],{},"The fade depth defaults to ",[526,936,937],{},"12%"," of the container, capped at ",[526,940,941],{},"40px"," so tall scrollers stay subtle. Use ",[526,944,729],{}," to set a fixed size on the spacing scale instead, the same way ",[526,947,948],{},"scroll-mt-\u003Cnumber>"," works.",[513,951],{"name":952,"previewClass":516},"ScrollFadeSizeDemo",[544,954,957],{"className":955,"code":956,"language":801,"meta":550},[799],"\u003Ctemplate>\n  \u003Cdiv class=\"scroll-fade scroll-fade-24 overflow-y-auto\">\n    \u003C!-- ... -->\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[526,958,956],{"__ignoreMap":550},[522,960,961],{},"For one-off values, use an arbitrary length or percentage:",[544,963,966],{"className":964,"code":965,"language":801,"meta":550},[799],"\u003Ctemplate>\n  \u003Cdiv class=\"scroll-fade scroll-fade-[15%] overflow-y-auto\">\n    \u003C!-- ... -->\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[526,967,965],{"__ignoreMap":550},[522,969,970,971,914,974,914,977,919,980,983,984,986],{},"To fade opposite edges by different amounts, use the per-edge modifiers ",[526,972,973],{},"scroll-fade-t-\u003Cnumber>",[526,975,976],{},"scroll-fade-b-\u003Cnumber>",[526,978,979],{},"scroll-fade-s-\u003Cnumber>",[526,981,982],{},"scroll-fade-e-\u003Cnumber>",". They override ",[526,985,729],{}," on the edge they target and accept arbitrary values too.",[544,988,991],{"className":989,"code":990,"language":801,"meta":550},[799],"\u003Ctemplate>\n  \u003Cdiv class=\"scroll-fade scroll-fade-b-8 scroll-fade-t-2 overflow-y-auto\">\n    \u003C!-- ... -->\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[526,992,990],{"__ignoreMap":550},[522,994,995,996,999,1000,1003],{},"Use the logical ",[526,997,998],{},"s","\u002F",[526,1001,1002],{},"e"," modifiers for horizontal scrollers so the sizes mirror in RTL.",[522,1005,1006,1007,1010,1011,1014],{},"The fade eases in and out over a fixed scroll distance rather than appearing instantly. That distance is the ",[526,1008,1009],{},"--scroll-fade-reveal"," variable, ",[526,1012,1013],{},"96px"," by default and independent of the fade depth. Lower it for a snappier reveal or raise it for a more gradual one:",[544,1016,1019],{"className":1017,"code":1018,"language":801,"meta":550},[799],"\u003Ctemplate>\n  \u003Cdiv class=\"scroll-fade overflow-y-auto [--scroll-fade-reveal:64px]\">\n    \u003C!-- ... -->\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[526,1020,1018],{"__ignoreMap":550},[518,1022,1024],{"id":1023},"disabling-the-fade","Disabling the Fade",[522,1026,868,1027,1029],{},[526,1028,777],{}," to remove the fade. It works in any class order, so the typical use is responsive or stateful:",[544,1031,1034],{"className":1032,"code":1033,"language":801,"meta":550},[799],"\u003Ctemplate>\n  \u003Cdiv class=\"scroll-fade overflow-y-auto md:scroll-fade-none\">\n    \u003C!-- ... -->\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[526,1035,1033],{"__ignoreMap":550},[513,1037],{"name":1038,"previewClass":516},"ScrollFadeNoneDemo",[518,1040,1042],{"id":1041},"fallback","Fallback",[522,1044,1045,1046,1052,1053,1055],{},"The scroll-aware behavior is implemented with ",[834,1047,1051],{"href":1048,"rel":1049},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FCSS\u002FCSS_scroll-driven_animations",[1050],"nofollow","CSS scroll-driven animations",", with no JavaScript and no scroll listeners. In browsers that do not support scroll-driven animations, ",[526,1054,425],{}," falls back to a static fade on both edges, and edge utilities fall back to a static fade on the selected edge.",[522,1057,1058,1059,1061,1062,1065],{},"Since the mask is applied to the scroll container itself, a visible scrollbar fades with the content at the edges. Pair ",[526,1060,425],{}," with ",[526,1063,1064],{},"scrollbar-none",", which ships in the same package, if you want to hide the scrollbar entirely.",[518,1067,469],{"id":1068},"rtl",[522,1070,1071,1073],{},[526,1072,627],{}," follows the reading direction. At rest, the start edge is crisp and the end edge fades. In RTL layouts that means a crisp right edge and a fade on the left, mirrored from LTR.",[513,1075],{"name":1076,"previewClass":516},"ScrollFadeRTLDemo",{"title":550,"searchDepth":1078,"depth":1078,"links":1079},2,[1080,1081,1082,1083,1084,1085,1086,1087,1088],{"id":520,"depth":1078,"text":327},{"id":566,"depth":1078,"text":567},{"id":851,"depth":1078,"text":852},{"id":864,"depth":1078,"text":865},{"id":895,"depth":1078,"text":896},{"id":930,"depth":1078,"text":931},{"id":1023,"depth":1078,"text":1024},{"id":1041,"depth":1078,"text":1042},{"id":1068,"depth":1078,"text":469},"Utilities for adding a fade effect to the edges of a scroll container.","md",{},"---\ntitle: scroll-fade\ndescription: Utilities for adding a fade effect to the edges of a scroll container.\n---\n\n::component-preview\n---\nname: ScrollFadeDemo\npreviewClass: h-auto\n---\n::\n\n## Installation\n\nIf your project was set up with `npx hui-kit@latest init`, you already have `scroll-fade`. It ships with the `hui-kit` package, which the CLI imports in your global CSS file.\n\nOtherwise, install the `hui-kit` package:\n\n```bash\nnpm install hui-kit\n```\n\nThen import the shared utilities in your global CSS file:\n\n```css\n@import \"tailwindcss\";\n@import \"hui-kit\u002Ftailwind.css\";\n```\n\n## Usage\n\n| Class                             | Styles                                                                                                              |\n| --------------------------------- | ------------------------------------------------------------------------------------------------------------------- |\n| `scroll-fade`                     | `mask-image: var(--scroll-fade-mask, var(--scroll-fade-block));` \u003Cbr \u002F> `animation-timeline: scroll(self y);`       |\n| `scroll-fade-y`                   | `mask-image: var(--scroll-fade-mask, var(--scroll-fade-block));` \u003Cbr \u002F> `animation-timeline: scroll(self y);`       |\n| `scroll-fade-x`                   | `mask-image: var(--scroll-fade-mask, var(--scroll-fade-inline));` \u003Cbr \u002F> `animation-timeline: scroll(self inline);` |\n| `scroll-fade-t`                   | Fade mask on the top edge. \u003Cbr \u002F> `animation-timeline: scroll(self y);`                                             |\n| `scroll-fade-b`                   | Fade mask on the bottom edge. \u003Cbr \u002F> `animation-timeline: scroll(self y);`                                          |\n| `scroll-fade-l`                   | Fade mask on the left edge. \u003Cbr \u002F> `animation-timeline: scroll(self x);`                                            |\n| `scroll-fade-r`                   | Fade mask on the right edge. \u003Cbr \u002F> `animation-timeline: scroll(self x);`                                           |\n| `scroll-fade-s`                   | Fade mask on the start edge, mirrors in RTL. \u003Cbr \u002F> `animation-timeline: scroll(self inline);`                      |\n| `scroll-fade-e`                   | Fade mask on the end edge, mirrors in RTL. \u003Cbr \u002F> `animation-timeline: scroll(self inline);`                        |\n| `scroll-fade-\u003Cnumber>`            | `--scroll-fade-size: calc(var(--spacing) * \u003Cnumber>);`                                                              |\n| `scroll-fade-[\u003Cvalue>]`           | `--scroll-fade-size: \u003Cvalue>;`                                                                                      |\n| `scroll-fade-{t,b,s,e}-\u003Cnumber>`  | `--scroll-fade-{t,b,s,e}-size: calc(var(--spacing) * \u003Cnumber>);`                                                    |\n| `scroll-fade-{t,b,s,e}-[\u003Cvalue>]` | `--scroll-fade-{t,b,s,e}-size: \u003Cvalue>;`                                                                            |\n| `scroll-fade-none`                | `--scroll-fade-mask: none;`                                                                                         |\n\nAdd `scroll-fade` or `scroll-fade-y` to the scroll container, i.e. the element that has `overflow-y-auto`.\n\n```vue\n\u003Ctemplate>\n  \u003Cdiv class=\"scroll-fade overflow-y-auto\">\n    \u003C!-- ... -->\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n```\n\nThe fade is scroll-aware and tracks the scroll position:\n\n- At rest, the top edge is crisp and the bottom edge fades to hint at more content.\n- As you scroll, a fade appears at the top and both edges stay faded mid-scroll.\n- At the end, the bottom edge sharpens to show you have reached the last item.\n\nThe fade is applied with `mask-image`, so it dissolves the content itself rather than overlaying a color. The mask uses a linear fade from transparent to black, so it adapts to any background without configuration. If your scroll area sits inside a card, put the background and border on a wrapper and `scroll-fade` on the inner scroller, so the fade dissolves the content and not the card.\n\nThe [`ScrollArea`](\u002Fdocs\u002Fcomponents\u002Fscroll-area) and [`MessageScroller`](\u002Fdocs\u002Fcomponents\u002Fmessage-scroller) components can use `scroll-fade` on their scrollable viewport.\n\n## No Overflow, No Fade\n\nIf the content does not overflow, no fade is shown. You can apply `scroll-fade` to any list without checking whether it scrolls.\n\n::component-preview\n---\nname: ScrollFadeOverflowDemo\npreviewClass: h-auto\n---\n::\n\n## Horizontal Scrolling\n\nUse `scroll-fade-x` on containers that scroll horizontally, i.e. the element that has `overflow-x-auto`.\n\n::component-preview\n---\nname: ScrollFadeHorizontalDemo\npreviewClass: h-64\n---\n::\n\n```vue\n\u003Ctemplate>\n  \u003Cdiv class=\"flex scroll-fade-x overflow-x-auto\">\n    \u003C!-- ... -->\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n```\n\nThe horizontal fade is direction-aware. In RTL layouts, the crisp edge and the fade follow the reading direction with no extra classes needed. `scroll-fade-\u003Cnumber>` and `scroll-fade-none` work the same for both axes.\n\n## Edge Fades\n\nUse edge utilities when only one edge should track the scroll position.\n\n::component-preview\n---\nname: ScrollFadeEdgeDemo\npreviewClass: h-auto\n---\n::\n\n```vue\n\u003Ctemplate>\n  \u003Cdiv class=\"scroll-fade-b overflow-y-auto\">\n    \u003C!-- ... -->\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n```\n\nThe edge utilities are scroll-aware. Start edges fade in after you scroll away from the start, and end edges fade out when you reach the end. Use `scroll-fade-t`, `scroll-fade-b`, `scroll-fade-l`, and `scroll-fade-r` for physical edges. Use `scroll-fade-s` and `scroll-fade-e` for logical inline edges that mirror in RTL.\n\n## Fade Size\n\nThe fade depth defaults to `12%` of the container, capped at `40px` so tall scrollers stay subtle. Use `scroll-fade-\u003Cnumber>` to set a fixed size on the spacing scale instead, the same way `scroll-mt-\u003Cnumber>` works.\n\n::component-preview\n---\nname: ScrollFadeSizeDemo\npreviewClass: h-auto\n---\n::\n\n```vue\n\u003Ctemplate>\n  \u003Cdiv class=\"scroll-fade scroll-fade-24 overflow-y-auto\">\n    \u003C!-- ... -->\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n```\n\nFor one-off values, use an arbitrary length or percentage:\n\n```vue\n\u003Ctemplate>\n  \u003Cdiv class=\"scroll-fade scroll-fade-[15%] overflow-y-auto\">\n    \u003C!-- ... -->\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n```\n\nTo fade opposite edges by different amounts, use the per-edge modifiers `scroll-fade-t-\u003Cnumber>`, `scroll-fade-b-\u003Cnumber>`, `scroll-fade-s-\u003Cnumber>`, and `scroll-fade-e-\u003Cnumber>`. They override `scroll-fade-\u003Cnumber>` on the edge they target and accept arbitrary values too.\n\n```vue\n\u003Ctemplate>\n  \u003Cdiv class=\"scroll-fade scroll-fade-b-8 scroll-fade-t-2 overflow-y-auto\">\n    \u003C!-- ... -->\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n```\n\nUse the logical `s`\u002F`e` modifiers for horizontal scrollers so the sizes mirror in RTL.\n\nThe fade eases in and out over a fixed scroll distance rather than appearing instantly. That distance is the `--scroll-fade-reveal` variable, `96px` by default and independent of the fade depth. Lower it for a snappier reveal or raise it for a more gradual one:\n\n```vue\n\u003Ctemplate>\n  \u003Cdiv class=\"scroll-fade overflow-y-auto [--scroll-fade-reveal:64px]\">\n    \u003C!-- ... -->\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n```\n\n## Disabling the Fade\n\nUse `scroll-fade-none` to remove the fade. It works in any class order, so the typical use is responsive or stateful:\n\n```vue\n\u003Ctemplate>\n  \u003Cdiv class=\"scroll-fade overflow-y-auto md:scroll-fade-none\">\n    \u003C!-- ... -->\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n```\n\n::component-preview\n---\nname: ScrollFadeNoneDemo\npreviewClass: h-auto\n---\n::\n\n## Fallback\n\nThe scroll-aware behavior is implemented with [CSS scroll-driven animations](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FCSS\u002FCSS_scroll-driven_animations), with no JavaScript and no scroll listeners. In browsers that do not support scroll-driven animations, `scroll-fade` falls back to a static fade on both edges, and edge utilities fall back to a static fade on the selected edge.\n\nSince the mask is applied to the scroll container itself, a visible scrollbar fades with the content at the edges. Pair `scroll-fade` with `scrollbar-none`, which ships in the same package, if you want to hide the scrollbar entirely.\n\n## RTL\n\n`scroll-fade-x` follows the reading direction. At rest, the start edge is crisp and the end edge fades. In RTL layouts that means a crisp right edge and a fade on the left, mirrored from LTR.\n\n::component-preview\n---\nname: ScrollFadeRTLDemo\npreviewClass: h-auto\n---\n::\n",{"title":425,"description":1089},"8kDlKkdsLrO4oV6PLtfszD6YOp5m19Ehrhf4jhAyN6Q",[1096,1097],{"title":489,"path":490,"stem":491,"children":-1},{"title":429,"path":430,"stem":431,"children":-1},1787698076539]