@archoleat/stylelint-config-extended-scss
Version:
Extended config for Stylelint with property sorting
2 lines (1 loc) • 21.2 kB
JavaScript
import{NESTED_ATTRIBUTE_REGEX as h,NESTED_ATTRIBUTE_SIBLING_REGEX as k,NESTED_ATTRIBUTE_CHILD_REGEX as v,NESTED_CLASS_REGEX as x,NESTED_CLASS_SIBLING_REGEX as E,NESTED_CLASS_CHILD_REGEX as N,NESTED_MODIFIER_REGEX as S,NESTED_ELEMENT_REGEX as z,ATTRIBUTE_REGEX as R,ATTRIBUTE_SIBLING_REGEX as $,ATTRIBUTE_CHILD_REGEX as T,CLASS_REGEX as _,CLASS_SIBLING_REGEX as I,CLASS_CHILD_REGEX as A,SIBLING_REGEX as G,CHILD_REGEX as P,BLOCK_REGEX as B,ELEMENT_REGEX as L,MODIFIER_REGEX as C}from"@archoleat/reglib";const D={"gamut/color-no-out-gamut-range":!0,"plugin/stylelint-group-selectors":!0,"plugin/declaration-block-no-ignored-properties":!0,"plugin/no-low-performance-animation-properties":!0,"plugin/use-defensive-css":[!0,{"accidental-hover":!0,"background-repeat":!0,"custom-property-fallbacks":!0,"flex-wrapping":!0,"scroll-chaining":!0,"scrollbar-gutter":!0,"vendor-prefix-grouping":!0}],"plugin/use-logical-properties-and-values":!0,"plugin/use-logical-units":!0,"rem-over-px/rem-over-px":!0},p=async c=>{const{name:s,hasBlock:b=!1}=c;return{name:s,hasBlock:b,type:"at-rule"}},e=async c=>{const{selector:s}=c;return{type:"rule",selector:s instanceof RegExp?s:`&${s}`}},a={pseudo:{element:{detailsContent:"::details-content",webkit:{slider:{thumb:"::-webkit-slider-thumb"}}},class:{blank:":blank",current:":current",hasSlotted:":has-slotted",localLink:":local-link",targetWithin:":target-within"}},property:{fieldSizing:"field-sizing",marginTrim:"margin-trim",imageResolution:"image-resolution",interpolateSize:"interpolate-size",lineHeightStep:"line-height-step",overlay:"overlay",mathShift:"math-shift",timelineScope:"timeline-scope",position:{anchor:"position-anchor",area:"position-area",try:"position-try",tryOrder:"position-try-order",tryFallbacks:"position-try-fallbacks",visibility:"position-visibility"},scroll:{timeline:"scroll-timeline",timelineAxis:"scroll-timeline-axis",timelineName:"scroll-timeline-name"},font:{synthesisPosition:"font-synthesis-position"},text:{sizeAdjust:"text-size-adjust",decorationSkip:"text-decoration-skip",spacingTrim:"text-spacing-trim"},animation:{timeline:"animation-timeline",range:"animation-range",rangeStart:"animation-range-start",rangeEnd:"animation-range-end"},view:{timeline:"view-timeline",timelineName:"view-timeline-name",timelineAxis:"view-timeline-axis",timelineInset:"view-timeline-inset"}}},t=async c=>{const{groupName:s,properties:b}=c;return{groupName:s,properties:b,emptyLineBefore:"threshold",noEmptyLineBetween:!0,order:"flexible"}},X=a.property,j=[await t({groupName:"Outline",properties:["outline","outline-width","outline-style","outline-color","outline-offset"]}),await t({groupName:"Scrollbar",properties:["scrollbar-gutter","scrollbar-width","scrollbar-color"]}),await t({groupName:"Mask",properties:["mask","mask-border","mask-border-source","mask-border-slice","mask-border-width","mask-border-outset","mask-border-repeat","mask-border-mode","mask-image","mask-clip","mask-origin","mask-type","mask-size","mask-position","mask-repeat","mask-mode","mask-composite"]}),await t({groupName:"Filter",properties:[X.overlay,"filter","backdrop-filter","mix-blend-mode","clip-path","clip-rule","flood-color","flood-opacity"]}),await t({groupName:"Background",properties:["background","background-image","background-color","background-origin","background-size","background-position","background-position-y","background-position-x","background-repeat","background-attachment","background-clip","background-blend-mode"]}),await t({groupName:"Color",properties:["color-scheme","accent-color","lighting-color","color","color-interpolation","color-interpolation-filters","caret-color","forced-color-adjust","print-color-adjust"]})],f=a.property,O=[await t({groupName:"Margin",properties:["margin","margin-block","margin-block-start","margin-block-end","margin-inline","margin-inline-start","margin-inline-end",f.marginTrim]}),await t({groupName:"Padding",properties:["padding","padding-block","padding-block-start","padding-block-end","padding-inline","padding-inline-start","padding-inline-end"]}),await t({groupName:"Border",properties:["border","border-radius","border-start-start-radius","border-start-end-radius","border-end-start-radius","border-end-end-radius","border-block","border-block-width","border-block-style","border-block-color","border-block-start","border-block-start-width","border-block-start-style","border-block-start-color","border-block-end","border-block-end-width","border-block-end-style","border-block-end-color","border-inline","border-inline-width","border-inline-style","border-inline-color","border-inline-start","border-inline-start-width","border-inline-start-style","border-inline-start-color","border-inline-end","border-inline-end-width","border-inline-end-style","border-inline-end-color","border-image","border-image-source","border-image-slice","border-image-width","border-image-outset","border-image-repeat"]}),await t({groupName:"Box",properties:["box-sizing","box-decoration-break","box-shadow"]}),await t({groupName:"Size",properties:["aspect-ratio","block-size","min-block-size","max-block-size","inline-size","min-inline-size","max-inline-size",f.interpolateSize,f.fieldSizing]}),await t({groupName:"Overflow",properties:["overflow","overflow-clip-margin","overflow-block","overflow-inline","overflow-wrap","overflow-anchor"]})],M=a.property,U=[await t({groupName:"Common",properties:["all","page"]}),await t({groupName:"Print",properties:["break-before","break-inside","break-after","orphans","widows"]}),await t({groupName:"Math",properties:["math-depth",M.mathShift,"math-style"]})],F=[await t({groupName:"Content",properties:["content","quotes"]}),await t({groupName:"Counter",properties:["counter-set","counter-increment","counter-reset"]}),await t({groupName:"List",properties:["list-style","list-style-type","list-style-position","list-style-image"]})],H=a.property,W=[await t({groupName:"Object",properties:["object-fit","object-position"]}),await t({groupName:"Image",properties:["image-orientation","image-rendering",H.imageResolution]})],y=a.property,q=[await t({groupName:"Actions",properties:["cursor","pointer-events","touch-action","resize","zoom"]}),await t({groupName:"User Actions",properties:["user-select","user-zoom"]}),await t({groupName:"Overscroll",properties:["overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline"]}),await t({groupName:"Scroll",properties:["scroll-margin","scroll-margin-block","scroll-margin-block-start","scroll-margin-block-end","scroll-margin-inline","scroll-margin-inline-start","scroll-margin-inline-end","scroll-padding","scroll-padding-block","scroll-padding-block-start","scroll-padding-block-end","scroll-padding-inline","scroll-padding-inline-start","scroll-padding-inline-end","scroll-snap-type","scroll-snap-align","scroll-snap-stop","scroll-behavior",y.scroll.timeline,y.scroll.timelineName,y.scroll.timelineAxis]})],w={pseudo:{element:{viewTransition:"::view-transition",error:{grammar:"::grammar-error",spelling:"::spelling-error"},view:{transition:{group:"::view-transition-group",imagePair:"::view-transition-image-pair",old:"::view-transition-old",new:"::view-transition-new"}}}},property:{alignment:{baseline:"alignment-baseline"},initial:{letter:"initial-letter"},view:{transitionName:"view-transition-name"}}},V=w.property,K=[await t({groupName:"Display",properties:["display","opacity","isolation","visibility","content-visibility","backface-visibility","appearance"]}),await t({groupName:"container",properties:["container","container-name","container-type"]}),await t({groupName:"Contain",properties:["contain","contain-intrinsic-size","contain-intrinsic-block-size","contain-intrinsic-inline-size"]}),await t({groupName:"Flex",properties:["flex","flex-grow","flex-shrink","flex-basis","flex-flow","flex-direction","flex-wrap","order"]}),await t({groupName:"Grid",properties:["grid","grid-area","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","grid-auto-flow","grid-auto-columns","grid-column","grid-column-start","grid-column-end","grid-auto-rows","grid-row","grid-row-start","grid-row-end","gap","column-gap","row-gap"]}),await t({groupName:"Columns",properties:["columns","column-width","column-fill","column-count","column-span","column-rule","column-rule-width","column-rule-style","column-rule-color"]}),await t({groupName:"Table",properties:["table-layout","border-spacing","border-collapse","empty-cells","vertical-align","caption-side"]}),await t({groupName:"Alignment",properties:["dominant-baseline",V.alignment.baseline,"place-content","place-items","place-self","align-content","align-items","align-self","justify-content","justify-items","justify-self"]})],o=a.property,J=w.property,Q=[await t({groupName:"Position",properties:["position",o.position.anchor,o.position.area,o.position.visibility,o.position.try,o.position.tryOrder,o.position.tryFallbacks,"offset","offset-position","offset-path","offset-distance","offset-rotate","offset-anchor","inset","inset-block","inset-block-start","inset-block-end","inset-inline","inset-inline-start","inset-inline-end","z-index"]}),await t({groupName:"Transform",properties:["transform","transform-origin","transform-box","transform-style","translate","scale","rotate","will-change","perspective","perspective-origin"]}),await t({groupName:"View Timeline",properties:[o.view.timeline,o.view.timelineName,o.view.timelineAxis,o.view.timelineInset,J.view.transitionName]})],Y=[await t({groupName:"SVG",properties:["fill","fill-opacity","fill-rule","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","paint-order","stop-color","stop-opacity"]}),await t({groupName:"Marker",properties:["marker","marker-start","marker-mid","marker-end"]}),await t({groupName:"Shape",properties:["shape-rendering","shape-outside","shape-margin","shape-image-threshold"]})],m=a.property,Z=[await t({groupName:"Transition",properties:["transition","transition-property","transition-duration","transition-timing-function","transition-delay","transition-behavior"]}),await t({groupName:"Animation",properties:["animation","animation-name","animation-duration","animation-timing-function","animation-delay","animation-iteration-count","animation-direction","animation-fill-mode","animation-play-state","animation-composition",m.timelineScope,m.animation.timeline,m.animation.range,m.animation.rangeStart,m.animation.rangeEnd]})],g={pseudo:{element:{webkit:{innerSpinButton:"::-webkit-inner-spin-button",scrollbar:"::-webkit-scrollbar",meter:{innerElement:"::-webkit-meter-inner-element",value:{evenLessGood:"::-webkit-meter-even-less-good-value",optimum:"::-webkit-meter-optimum-value",subOptimum:"::-webkit-meter-suboptimum-value"}},progress:{bar:"::-webkit-progress-bar",innerElement:"::-webkit-progress-inner-element",value:"::-webkit-progress-value"},search:{button:{cancel:"::-webkit-search-cancel-button",results:"::-webkit-search-results-button"}},slider:{runnableTrack:"::-webkit-slider-runnable-track"}},moz:{colorSwatch:"::-moz-color-swatch",progressBar:"::-moz-progress-bar",meterBar:"::-moz-meter-bar",list:{bullet:"::-moz-list-bullet",number:"::-moz-list-number"},range:{progress:"::-moz-range-progress",thumb:"::-moz-range-thumb",track:"::-moz-range-track"}}},class:{moz:{dragOver:":-moz-drag-over",loading:":-moz-loading",localeDir:":-moz-locale-dir",onlyWhitespace:":-moz-only-whitespace",submitInvalid:":-moz-submit-invalid",suppressed:":-moz-suppressed",userDisabled:":-moz-user-disabled",windowInactive:":-moz-window-inactive",handler:{disabled:":-moz-handler-disabled",blocked:":-moz-handler-blocked",crashed:":-moz-handler-crashed"},node:{first:":-moz-first-node",last:":-moz-last-node"}}}},property:{font:{smooth:"font-smooth"}}},d=a.property,ee=w.property,te=g.property,ie=[await t({groupName:"Font",properties:["src","font","font-family","font-size","font-size-adjust","font-weight","font-style","font-display","font-palette","font-kerning","font-stretch",te.font.smooth,"font-optical-sizing","font-language-override","font-feature-settings","font-synthesis",d.font.synthesisPosition,"font-synthesis-weight","font-synthesis-style","font-synthesis-small-caps","font-variant","font-variant-position","font-variant-ligatures","font-variant-numeric","font-variant-emoji","font-variant-caps","font-variant-east-asian","font-variant-alternates","font-variation-settings"]}),await t({groupName:"Text",properties:["text-overflow","text-rendering","text-indent","text-justify","text-orientation","text-shadow","text-transform","text-anchor","text-wrap","text-wrap-mode","text-wrap-style",d.text.spacingTrim,"text-align","text-align-last",d.text.sizeAdjust,"text-combine-upright","text-decoration",d.text.decorationSkip,"text-decoration-skip-ink","text-decoration-thickness","text-decoration-line","text-decoration-style","text-decoration-color","text-emphasis","text-emphasis-position","text-emphasis-style","text-emphasis-color","text-underline-position","text-underline-offset"]}),await t({groupName:"Typography",properties:["unicode-bidi","unicode-range","tab-size","direction","writing-mode","white-space","white-space-collapse","ruby-position","ruby-align","line-break","line-height",d.lineHeightStep,"word-spacing","word-break",ee.initial.letter,"letter-spacing","hyphens","hyphenate-character","hyphenate-limit-chars","hanging-punctuation"]})],re=a.pseudo.element,ae=a.pseudo.element.webkit,n=g.pseudo.element.moz,r=g.pseudo.element.webkit,u=a.pseudo.class,l=w.pseudo.element,i=g.pseudo.class.moz,oe={"order/order":["dollar-variables","custom-properties",await p({name:"function"}),await p({name:"include"}),await p({name:"extend"}),"declarations",await e({selector:"::before"}),await e({selector:"::after"}),await e({selector:"::selection"}),await e({selector:"::backdrop"}),await e({selector:"::marker"}),await e({selector:"::first-line"}),await e({selector:"::first-letter"}),await e({selector:"::cue"}),await e({selector:"::cue-region"}),await e({selector:"::placeholder"}),await e({selector:"::file-selector-button"}),await e({selector:"::highlight"}),await e({selector:"::part"}),await e({selector:"::slotted"}),await e({selector:"::target-text"}),await e({selector:l.error.spelling}),await e({selector:l.error.grammar}),await e({selector:l.viewTransition}),await e({selector:l.view.transition.group}),await e({selector:l.view.transition.imagePair}),await e({selector:l.view.transition.old}),await e({selector:l.view.transition.new}),await e({selector:r.slider.runnableTrack}),await e({selector:ae.slider.thumb}),await e({selector:r.innerSpinButton}),await e({selector:r.meter.value.evenLessGood}),await e({selector:r.meter.innerElement}),await e({selector:r.meter.value.optimum}),await e({selector:r.meter.value.subOptimum}),await e({selector:r.progress.bar}),await e({selector:r.progress.innerElement}),await e({selector:r.progress.value}),await e({selector:r.scrollbar}),await e({selector:r.search.button.results}),await e({selector:r.search.button.cancel}),await e({selector:n.meterBar}),await e({selector:n.colorSwatch}),await e({selector:n.list.bullet}),await e({selector:n.list.number}),await e({selector:n.progressBar}),await e({selector:n.range.track}),await e({selector:n.range.progress}),await e({selector:n.range.thumb}),await e({selector:":root"}),await e({selector:":lang"}),await e({selector:":scope"}),await e({selector:":host"}),await e({selector:":host-content"}),await e({selector:":modal"}),await e({selector:":popover-open"}),await e({selector:":fullscreen"}),await e({selector:":picture-in-picture"}),await e({selector:":first"}),await e({selector:":left"}),await e({selector:":right"}),await e({selector:":only-child"}),await e({selector:":only-of-type"}),await e({selector:":first-child"}),await e({selector:":first-of-type"}),await e({selector:":last-child"}),await e({selector:":last-of-type"}),await e({selector:":nth-child"}),await e({selector:":nth-of-type"}),await e({selector:":nth-last-child"}),await e({selector:":nth-last-of-type"}),await e({selector:":link"}),await e({selector:":visited"}),await e({selector:":hover"}),await e({selector:":focus"}),await e({selector:":focus-visible"}),await e({selector:":focus-within"}),await e({selector:":active"}),await e({selector:":enabled"}),await e({selector:":disabled"}),await e({selector:":checked"}),await e({selector:":indeterminate"}),await e({selector:":valid"}),await e({selector:":user-valid"}),await e({selector:":invalid"}),await e({selector:":user-invalid"}),await e({selector:":read-only"}),await e({selector:":read-write"}),await e({selector:":optional"}),await e({selector:":required"}),await e({selector:":placeholder-shown"}),await e({selector:":default"}),await e({selector:":past"}),await e({selector:u.current}),await e({selector:":future"}),await e({selector:":playing"}),await e({selector:":paused"}),await e({selector:":stalled"}),await e({selector:":muted"}),await e({selector:":volume-locked"}),await e({selector:":seeking"}),await e({selector:":buffering"}),await e({selector:":autofill"}),await e({selector:":in-range"}),await e({selector:":out-of-range"}),await e({selector:":empty"}),await e({selector:":target"}),await e({selector:re.detailsContent}),await e({selector:u.targetWithin}),await e({selector:":any-link"}),await e({selector:u.localLink}),await e({selector:":defined"}),await e({selector:":dir"}),await e({selector:":where"}),await e({selector:":is"}),await e({selector:":has"}),await e({selector:u.hasSlotted}),await e({selector:":not"}),await e({selector:u.blank}),await e({selector:":state"}),await e({selector:i.dragOver}),await e({selector:i.node.first}),await e({selector:i.node.last}),await e({selector:i.handler.disabled}),await e({selector:i.handler.blocked}),await e({selector:i.handler.crashed}),await e({selector:i.loading}),await e({selector:i.localeDir}),await e({selector:i.onlyWhitespace}),await e({selector:i.submitInvalid}),await e({selector:i.suppressed}),await e({selector:i.userDisabled}),await e({selector:i.windowInactive}),await e({selector:new RegExp(`^${h}$`)}),await e({selector:new RegExp(`^${k}$`)}),await e({selector:new RegExp(`^${v}$`)}),await e({selector:new RegExp(`^${x}$`)}),await e({selector:new RegExp(`^${E}$`)}),await e({selector:new RegExp(`^${N}$`)}),await e({selector:new RegExp(`^${S}$`)}),await e({selector:new RegExp(`^${z}$`)}),await e({selector:new RegExp(`^${R}$`)}),await e({selector:new RegExp(`^${$}$`)}),await e({selector:new RegExp(`^${T}$`)}),await e({selector:new RegExp(`^${_}$`)}),await e({selector:new RegExp(`^${I}$`)}),await e({selector:new RegExp(`^${A}$`)}),await e({selector:new RegExp(`^${G}$`)}),await e({selector:new RegExp(`^${P}$`)}),"rules",await p({name:"include",hasBlock:!0}),await p({name:"media",hasBlock:!0})],"order/properties-order":[[...U,...F,...q,...Q,...O,...K,...j,...ie,...W,...Y,...Z],{severity:"warning",emptyLineBeforeUnspecified:"always",emptyLineMinimumPropertyThreshold:5,unspecified:"bottomAlphabetical"}]},ne={bem:"Expected lowercase class name by BEM (block__element--modifier)"},se={"at-rule-disallowed-list":["debug"],"at-rule-empty-line-before":["always",{ignore:["first-nested","blockless-after-same-name-blockless","after-comment"],severity:"warning"}],"color-named":"never","declaration-no-important":!0,"declaration-empty-line-before":["always",{except:["first-nested"],ignore:["after-declaration","after-comment","inside-single-line-block"],severity:"warning"}],"font-weight-notation":"numeric","function-url-no-scheme-relative":!0,"keyframe-selector-notation":"percentage","max-nesting-depth":[3,{ignore:["blockless-at-rules"]}],"media-feature-name-value-no-unknown":!0,"no-descending-specificity":null,"no-unknown-animations":!0,"selector-class-pattern":[`^(?:${B})(?:${L})?(?:${C})?$`,{message:ne.bem}],"selector-max-combinators":4,"selector-max-compound-selectors":3,"selector-max-id":0,"selector-max-universal":1,"selector-no-qualifying-type":!0,"value-keyword-case":["lower",{ignoreProperties:["text-rendering"]}]},le={"scss/at-each-key-value-single-line":!0,"scss/at-root-no-redundant":!0,"scss/at-use-no-redundant-alias":!0,"scss/comment-no-loud":!0,"scss/declaration-nested-properties":"never","scss/dimension-no-non-numeric-values":!0,"scss/dollar-variable-empty-line-after":["always",{except:["last-nested","before-comment","before-dollar-variable"],ignore:["before-comment","inside-single-line-block"],severity:"warning"}],"scss/dollar-variable-no-namespaced-assignment":!0,"scss/double-slash-comment-inline":"never","scss/function-color-relative":!0,"scss/map-keys-quotes":"always","scss/media-feature-value-dollar-variable":"always","scss/no-duplicate-dollar-variables":!0,"scss/no-global-function-names":null,"scss/partial-no-import":!0,"scss/property-no-unknown":!0,"scss/selector-no-redundant-nesting-selector":!0};var ce={extends:["stylelint-config-standard-scss","stylelint-prettier/recommended"],plugins:["stylelint-declaration-block-no-ignored-properties","stylelint-gamut","stylelint-group-selectors","stylelint-high-performance-animation","stylelint-order","stylelint-plugin-defensive-css","stylelint-plugin-logical-css","stylelint-rem-over-px"],rules:{...D,...se,...le,...oe}};export{ce as default};