@shayanthenerd/eslint-config
Version:
A modern, flexible ESLint configuration for enforcing best practices and maintaining a consistent coding style
65 lines (63 loc) • 1.49 kB
JavaScript
import { isEnabled } from "../utils/isEnabled.js";
import { defaultOptions } from "../utils/options/defaultOptions.js";
//#region src/rules/css.ts
const allowedPhysicalUnits = [
"cqh",
"cqw",
"dvh",
"dvw",
"lvh",
"lvw",
"svh",
"svw",
"vh",
"vw"
];
const allowedPhysicalProperties = [
"bottom",
"border-bottom",
"border-bottom-color",
"border-bottom-style",
"border-bottom-width",
"border-top",
"border-top-color",
"border-top-style",
"border-top-width",
"contain-intrinsic-height",
"contain-intrinsic-width",
"height",
"margin-bottom",
"margin-top",
"max-height",
"max-width",
"min-height",
"min-width",
"overflow-x",
"overflow-y",
"overscroll-behavior-x",
"overscroll-behavior-y",
"padding-bottom",
"padding-top",
"scroll-margin-bottom",
"scroll-margin-top",
"scroll-padding-bottom",
"scroll-padding-top",
"top",
"width"
];
function getCSSRules(options) {
const { css } = options.configs;
const { useBaseline, allowedRelativeFontUnits } = isEnabled(css) ? css : defaultOptions.configs.css;
const cssRules = {
"css/no-invalid-properties": ["error", { allowUnknownVariables: true }],
"css/relative-font-units": ["warn", { allowUnits: allowedRelativeFontUnits }],
"css/use-baseline": useBaseline ? ["warn", { available: useBaseline }] : "off",
"css/prefer-logical-properties": ["error", {
allowUnits: allowedPhysicalUnits,
allowProperties: allowedPhysicalProperties
}]
};
return cssRules;
}
//#endregion
export { getCSSRules };