This is an automated email from the ASF dual-hosted git repository.
bzp2010 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git
The following commit(s) were added to refs/heads/master by this push:
new 79b11ff2256 refactor: footer (#1176)
79b11ff2256 is described below
commit 79b11ff225681483f7967a5b5cf2bff38387bdfa
Author: Young <[email protected]>
AuthorDate: Fri Jul 1 15:35:36 2022 +0800
refactor: footer (#1176)
---
.stylelintrc | 7 +-
package.json | 2 +-
website/docusaurus.config.js | 76 -------------
website/package.json | 7 +-
website/src/components/sections/Endcta.tsx | 2 +-
website/src/css/util.scss | 60 +++++++++++
website/src/theme/Footer/index.tsx | 158 ++++++++++++++++++++++++++++
website/src/theme/Footer/styles.module.scss | 112 ++++++++++++++++++++
website/src/utils/types.d.ts | 1 +
yarn.lock | 68 +++++++++++-
10 files changed, 406 insertions(+), 87 deletions(-)
diff --git a/.stylelintrc b/.stylelintrc
index e9121215eed..2d808f06a0b 100644
--- a/.stylelintrc
+++ b/.stylelintrc
@@ -1,8 +1,11 @@
{
- "extends": "stylelint-config-standard",
+ "extends": [
+ "stylelint-config-standard",
+ "stylelint-config-recommended-scss"
+ ],
"rules": {
"selector-type-case": "lower",
"selector-class-pattern": null,
- "property-no-vendor-prefix": true
+ "property-no-vendor-prefix": true,
}
}
diff --git a/package.json b/package.json
index 1eeda13fa22..b2cf8f492bb 100644
--- a/package.json
+++ b/package.json
@@ -37,6 +37,6 @@
"lint-staged": {
"*.{js,jsx,ts,tsx}": "eslint --cache --fix",
"*.{yml,yaml}": "eslint --cache --fix",
- "*.css": "stylelint --cache --fix"
+ "*.{scss,css}": "stylelint --cache --fix"
}
}
diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js
index 20a0f9d5fef..f1d9f18b14d 100644
--- a/website/docusaurus.config.js
+++ b/website/docusaurus.config.js
@@ -318,82 +318,6 @@ module.exports = {
items: require('./config/navbar.js'),
},
hideableSidebar: true,
- footer: {
- links: [
- {
- title: 'ASF',
- items: [
- {
- label: 'Foundation',
- to: 'https://www.apache.org/',
- },
- {
- label: 'License',
- to: 'https://www.apache.org/licenses/',
- },
- {
- label: 'Events',
- to: 'https://www.apache.org/events/',
- },
- {
- label: 'Security',
- to: 'https://www.apache.org/security/',
- },
- {
- label: 'Sponsorship',
- to: 'https://www.apache.org/foundation/sponsorship.html',
- },
- {
- label: 'Thanks',
- to: 'https://www.apache.org/foundation/thanks.html',
- },
- ],
- },
- {
- title: 'Community',
- items: [
- {
- label: 'GitHub',
- to: 'https://github.com/apache/apisix/issues',
- },
- {
- label: 'Slack',
- to: '/docs/general/join',
- },
- {
- label: 'Twitter',
- to: 'https://twitter.com/ApacheAPISIX',
- }, {
- label: 'YouTube',
- to: 'https://www.youtube.com/channel/UCgPD18cMhOg5rmPVnQhAC8g',
- },
- ],
- },
- {
- title: 'More',
- items: [
- {
- label: 'Blog',
- to: '/blog/',
- }, {
- label: 'Showcase',
- to: '/showcase',
- }, {
- label: 'Plugin Hub',
- to: '/plugins',
- },
- ],
- },
- ],
- logo: {
- alt: 'Apache Software Foundation',
- src: 'https://static.apiseven.com/202202/asf_logo_wide_small.png',
- href: 'https://www.apache.org/',
- },
-
- copyright:
- 'Copyright © 2019-2022 The Apache Software Foundation. Apache APISIX,
APISIX®, Apache, the Apache feather logo, and the Apache APISIX project logo
are either registered trademarks or trademarks of the Apache Software
Foundation.',
- },
announcementBar: {
id: 'query',
backgroundColor: '#e8433e',
diff --git a/website/package.json b/website/package.json
index c9535296d6a..bf0ea046d54 100644
--- a/website/package.json
+++ b/website/package.json
@@ -24,15 +24,18 @@
"@types/styled-components": "^5.1.24",
"@types/video.js": "^7.3.40",
"babel-plugin-styled-components": "^2.0.6",
+ "stylelint-config-standard-scss": "^4.0.0",
"typescript": "^4.4.2"
},
"dependencies": {
"@docusaurus/core": "2.0.0-beta.6",
"@docusaurus/plugin-client-redirects": "2.0.0-beta.6",
"@docusaurus/preset-classic": "2.0.0-beta.6",
+ "@iconify/icons-akar-icons": "^1.2.8",
+ "@iconify/react": "^3.2.2",
"change-case": "^4.1.2",
"clsx": "^1.1.1",
- "docusaurus-plugin-sass": "^0.2.1",
+ "docusaurus-plugin-sass": "^0.2.2",
"gsap": "^3.7.1",
"raw-loader": "^4.0.2",
"rc-image": "^5.6.2",
@@ -40,7 +43,7 @@
"react-dom": "^17.0.2",
"react-lazy-load-image-component": "^1.5.4",
"react-transition-group": "^4.4.1",
- "sass": "^1.38.2",
+ "sass": "^1.53.0",
"styled-components": "^5.3.3",
"three": "^0.131.3",
"video.js": "^7.19.2"
diff --git a/website/src/components/sections/Endcta.tsx
b/website/src/components/sections/Endcta.tsx
index 18e14d380c5..09f047dbd8b 100644
--- a/website/src/components/sections/Endcta.tsx
+++ b/website/src/components/sections/Endcta.tsx
@@ -9,7 +9,7 @@ import { LazyLoadImage } from 'react-lazy-load-image-component';
import ArrowAnim from '../ArrowAnim';
const EndCTA: FC = () => (
- <div className="endcta" style={{ padding: '50px 0', background: '#FF90A3',
margin: '0 0 -32px 0' }}>
+ <div className="endcta" style={{ padding: '50px 0', background: '#FF90A3' }}>
<div className="endcta-text">
<p style={{
display: 'flex', justifyContent: 'center', alignItems: 'center',
whiteSpace: 'pre',
diff --git a/website/src/css/util.scss b/website/src/css/util.scss
new file mode 100644
index 00000000000..4328163e479
--- /dev/null
+++ b/website/src/css/util.scss
@@ -0,0 +1,60 @@
+@use "sass:map";
+
+$breakpoints: (
+ xs: 369px,
+ sm: 736px,
+ md: 1024px,
+ lg: 1400px,
+);
+
+// @include respond-above() {}
+@mixin respond-above($breakpoint) {
+ @if map.has-key($breakpoints, $breakpoint) {
+ $breakpoint-value: map.get($breakpoints, $breakpoint);
+
+ @media only screen and (min-width: $breakpoint-value) {
+ @content;
+ }
+ }
+
+ @else {
+ @warn "Invalid #{$breakpoint}.";
+ }
+}
+
+// @include respond-below() {}
+@mixin respond-below($breakpoint) {
+ @if map.has-key($breakpoints, $breakpoint) {
+ $breakpoint-value: map.get($breakpoints, $breakpoint);
+
+ @media only screen and (max-width: ($breakpoint-value - 1)) {
+ @content;
+ }
+ }
+
+ @else {
+ @warn "Invalid #{$breakpoint}.";
+ }
+}
+
+// @include respond-between(sm, md) {}
+@mixin respond-between($lower, $upper) {
+ @if map.has-key($breakpoints, $lower) and map.has-key($breakpoints, $upper) {
+ $lower-breakpoint: map.get($breakpoints, $lower);
+ $upper-breakpoint: map.get($breakpoints, $upper);
+
+ @media only screen and (min-width: $lower-breakpoint) and (max-width:
($upper-breakpoint - 1)) {
+ @content;
+ }
+ }
+
+ @else {
+ @if (map.has-key($breakpoints, $lower) == false) {
+ @warn "Lower breakpoint invalid: #{$lower}.";
+ }
+
+ @if (map.has-key($breakpoints, $upper) == false) {
+ @warn "Upper breakpoint invalid: #{$upper}.";
+ }
+ }
+}
diff --git a/website/src/theme/Footer/index.tsx
b/website/src/theme/Footer/index.tsx
new file mode 100644
index 00000000000..ecc86e7bd08
--- /dev/null
+++ b/website/src/theme/Footer/index.tsx
@@ -0,0 +1,158 @@
+/* eslint-disable react/prop-types */
+/**
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+import type { FC } from 'react';
+import React from 'react';
+import Link from '@docusaurus/Link';
+import useBaseUrl from '@docusaurus/useBaseUrl';
+import { Icon } from '@iconify/react';
+import githubIcon from '@iconify/icons-akar-icons/github-fill';
+import twitterIcon from '@iconify/icons-akar-icons/twitter-fill';
+import slackIcon from '@iconify/icons-akar-icons/slack-fill';
+import youtubeIcon from '@iconify/icons-akar-icons/youtube-fill';
+import { LazyLoadImage } from 'react-lazy-load-image-component';
+import style from './styles.module.scss';
+
+const footer = {
+ links: [
+ {
+ title: 'ASF',
+ items: [
+ {
+ label: 'Foundation',
+ to: 'https://www.apache.org/',
+ },
+ {
+ label: 'License',
+ to: 'https://www.apache.org/licenses/',
+ },
+ {
+ label: 'Events',
+ to: 'https://www.apache.org/events/',
+ },
+ {
+ label: 'Security',
+ to: 'https://www.apache.org/security/',
+ },
+ {
+ label: 'Sponsorship',
+ to: 'https://www.apache.org/foundation/sponsorship.html',
+ },
+ {
+ label: 'Thanks',
+ to: 'https://www.apache.org/foundation/thanks.html',
+ },
+ ],
+ },
+ {
+ title: 'Community',
+ items: [
+ {
+ icon: githubIcon,
+ label: 'GitHub',
+ to: 'https://github.com/apache/apisix/issues',
+ },
+ {
+ icon: slackIcon,
+ label: 'Slack',
+ to: '/docs/general/join',
+ },
+ {
+ icon: twitterIcon,
+ label: 'Twitter',
+ to: 'https://twitter.com/ApacheAPISIX',
+ },
+ {
+ icon: youtubeIcon,
+ label: 'YouTube',
+ to: 'https://www.youtube.com/channel/UCgPD18cMhOg5rmPVnQhAC8g',
+ },
+ ],
+ },
+ {
+ title: 'More',
+ items: [
+ {
+ label: 'Blog',
+ to: '/blog/',
+ }, {
+ label: 'Showcase',
+ to: '/showcase',
+ }, {
+ label: 'Plugin Hub',
+ to: '/plugins',
+ },
+ ],
+ },
+ ],
+ logo: {
+ alt: 'Apache Software Foundation',
+ src: 'https://static.apiseven.com/202202/asf_logo_wide_small.png',
+ href: 'https://www.apache.org/',
+ },
+
+ copyright:
+ 'Copyright © 2019-2022 The Apache Software Foundation. Apache APISIX,
APISIX®, Apache, the Apache feather logo, and the Apache APISIX project logo
are either registered trademarks or trademarks of the Apache Software
Foundation.',
+};
+
+const FooterLink = ({
+ to, icon, href, label, prependBaseUrlToHref, ...props
+}) => {
+ const toUrl = useBaseUrl(to);
+ const normalizedHref = useBaseUrl(href, {
+ forcePrependBaseUrl: true,
+ });
+ const hrefObj = href
+ ? { href: prependBaseUrlToHref ? normalizedHref : href }
+ : { to: toUrl };
+ return (
+ <Link
+ {...hrefObj}
+ {...props}
+ >
+ <Icon icon={icon} />
+ <span>{label}</span>
+ </Link>
+ );
+};
+
+const Footer: FC = () => {
+ const { copyright, links, logo } = footer;
+
+ if (!footer) {
+ return null;
+ }
+
+ return (
+ <footer className={style.container}>
+ {links && links.length > 0 && (
+ <div className={style.linksRow}>
+ {links.map(({ title, items }) => (
+ <div key={title} className={style.linksCol}>
+ <div>{title}</div>
+ <ul>
+ {items.map((v) => (
+ <li key={v.to} className="footer__item">
+ <FooterLink {...v} />
+ </li>
+ ))}
+ </ul>
+ </div>
+ ))}
+ </div>
+ )}
+ <div className={style.copyright}>
+ <Link href={logo.href}>
+ <LazyLoadImage alt={logo.alt} src={logo.src} height="40px"
width="231.25px" />
+ </Link>
+ <div className={style.text}>{copyright}</div>
+ </div>
+ </footer>
+ );
+};
+
+export default Footer;
diff --git a/website/src/theme/Footer/styles.module.scss
b/website/src/theme/Footer/styles.module.scss
new file mode 100644
index 00000000000..9ee3c1b5503
--- /dev/null
+++ b/website/src/theme/Footer/styles.module.scss
@@ -0,0 +1,112 @@
+@import "../../css/util";
+
+$links-color: #707279;
+$margin: 8px;
+
+.container {
+ margin: 4rem auto 2rem;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ padding: 0 25%;
+ min-width: 50%;
+
+ & .linksRow {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+
+ & .linksCol {
+ display: flex;
+ flex-direction: column;
+
+ & div {
+ font-weight: bolder;
+ margin-bottom: $margin * 2;
+ margin-left: -0.5px;
+ }
+
+ & ul {
+ padding: 0;
+ margin: 0;
+ list-style-type: none;
+
+ li {
+ line-height: 1.15em;
+ margin-bottom: calc($margin / 2);
+ padding: calc($margin / 4) 0;
+
+ a {
+ display: flex;
+ align-items: center;
+ color: $links-color;
+
+ &:hover {
+ color: var(--ifm-link-color);
+ }
+
+ svg {
+ $size: $margin * 2;
+
+ width: $size;
+ height: $size;
+ margin-right: $margin;
+ }
+
+ span {
+ font-size: 14px;
+ margin-top: 2px;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ @include respond-below(sm) {
+ padding: 0;
+ margin: 4rem 1rem 1.5rem;
+
+ & .linksRow {
+ display: grid;
+ column-gap: 50px;
+ row-gap: 25px;
+ grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
+
+ & .linksCol {
+ margin-bottom: $margin;
+
+ & div {
+ margin-bottom: $margin;
+ margin-left: 0;
+ }
+
+ & ul {
+ li {
+ a {
+ span {
+ font-size: 16px;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+.copyright {
+ text-align: center;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ max-width: 680px;
+ font-size: 12px;
+ color: $links-color;
+ margin-top: 2.4rem;
+
+ @include respond-below(sm) {
+ text-align: left;
+ }
+}
diff --git a/website/src/utils/types.d.ts b/website/src/utils/types.d.ts
new file mode 100644
index 00000000000..d5cf927a7cd
--- /dev/null
+++ b/website/src/utils/types.d.ts
@@ -0,0 +1 @@
+declare module '*.scss';
diff --git a/yarn.lock b/yarn.lock
index 9374364d5a9..5d4963cb174 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1655,6 +1655,23 @@
resolved
"https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
integrity
sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
+"@iconify/icons-akar-icons@^1.2.8":
+ version "1.2.8"
+ resolved
"https://registry.yarnpkg.com/@iconify/icons-akar-icons/-/icons-akar-icons-1.2.8.tgz#ee384ff51baa8e09e5a4ac4e1d451ac9f0b3fc4f"
+ integrity
sha512-bIjwq5+PUhKsMtOr5j+bu9ocvqC3lIgTyYE/gi5tUphK7Yw03ZZMSlkZSGg/r1guwuD+BKfj+/XxY1CqSMFliQ==
+ dependencies:
+ "@iconify/types" "*"
+
+"@iconify/react@^3.2.2":
+ version "3.2.2"
+ resolved
"https://registry.yarnpkg.com/@iconify/react/-/react-3.2.2.tgz#ab5241dc01562076bae3b0c22238aff7e5f029cc"
+ integrity
sha512-z3+Jno3VcJzgNHsN5mEvYMsgCkOZkydqdIwOxjXh45+i2Vs9RGH68Y52vt39izwFSfuYUXhaW+1u7m7+IhCn/g==
+
+"@iconify/types@*":
+ version "1.1.0"
+ resolved
"https://registry.yarnpkg.com/@iconify/types/-/types-1.1.0.tgz#dc15fc988b1b3fd558dd140a24ede7e0aac11280"
+ integrity
sha512-Jh0llaK2LRXQoYsorIH8maClebsnzTcve+7U3rQUSnC11X4jtPnFuyatqFLvMxZ8MLG8dB4zfHsbPfuvxluONw==
+
"@jridgewell/resolve-uri@^3.0.3":
version "3.0.5"
resolved
"https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c"
@@ -4102,7 +4119,7 @@ doctrine@^3.0.0:
dependencies:
esutils "^2.0.2"
-docusaurus-plugin-sass@^0.2.1:
+docusaurus-plugin-sass@^0.2.2:
version "0.2.2"
resolved
"https://registry.yarnpkg.com/docusaurus-plugin-sass/-/docusaurus-plugin-sass-0.2.2.tgz#9b7f8c6fbe833677064ec05b09b98d90b50be324"
integrity
sha512-ZZBpj3PrhGpYE2kAnkZB9NRwy/CDi4rGun1oec6PYR8YvGzqxYGtXvLgHi6FFbu8/N483klk8udqyYMh6Ted+A==
@@ -8101,6 +8118,11 @@ postcss-safe-parser@^6.0.0:
resolved
"https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz#bb4c29894171a94bc5c996b9a30317ef402adaa1"
integrity
sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==
+postcss-scss@^4.0.2:
+ version "4.0.4"
+ resolved
"https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.4.tgz#aa8f60e19ee18259bc193db9e4b96edfce3f3b1f"
+ integrity
sha512-aBBbVyzA8b3hUL0MGrpydxxXKXFZc5Eqva0Q3V9qsBOLEMsjb6w49WfpsoWzpEgcqJGW4t7Rio8WXVU9Gd8vWg==
+
postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4,
postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9:
version "6.0.9"
resolved
"https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f"
@@ -8109,6 +8131,14 @@ postcss-selector-parser@^6.0.2,
postcss-selector-parser@^6.0.4, postcss-selector
cssesc "^3.0.0"
util-deprecate "^1.0.2"
+postcss-selector-parser@^6.0.6:
+ version "6.0.10"
+ resolved
"https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d"
+ integrity
sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==
+ dependencies:
+ cssesc "^3.0.0"
+ util-deprecate "^1.0.2"
+
postcss-sort-media-queries@^3.10.11:
version "3.12.13"
resolved
"https://registry.yarnpkg.com/postcss-sort-media-queries/-/postcss-sort-media-queries-3.12.13.tgz#213b1422e7efc29e0c2519b6ab259ff7d50b2156"
@@ -9084,10 +9114,10 @@ sass-loader@^10.1.1:
schema-utils "^3.0.0"
semver "^7.3.2"
-sass@^1.38.2:
- version "1.49.9"
- resolved
"https://registry.yarnpkg.com/sass/-/sass-1.49.9.tgz#b15a189ecb0ca9e24634bae5d1ebc191809712f9"
- integrity
sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==
+sass@^1.53.0:
+ version "1.53.0"
+ resolved
"https://registry.yarnpkg.com/sass/-/sass-1.53.0.tgz#eab73a7baac045cc57ddc1d1ff501ad2659952eb"
+ integrity
sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ==
dependencies:
chokidar ">=3.0.0 <4.0.0"
immutable "^4.0.0"
@@ -9862,11 +9892,28 @@ stylehacks@^5.1.0:
browserslist "^4.16.6"
postcss-selector-parser "^6.0.4"
+stylelint-config-recommended-scss@^6.0.0:
+ version "6.0.0"
+ resolved
"https://registry.yarnpkg.com/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-6.0.0.tgz#02baeace2b7f30f80369b6ee2da77aae5a01bff6"
+ integrity
sha512-6QOe2/OzXV2AP5FE12A7+qtKdZik7Saf42SMMl84ksVBBPpTdrV+9HaCbPYiRMiwELY9hXCVdH4wlJ+YJb5eig==
+ dependencies:
+ postcss-scss "^4.0.2"
+ stylelint-config-recommended "^7.0.0"
+ stylelint-scss "^4.0.0"
+
stylelint-config-recommended@^7.0.0:
version "7.0.0"
resolved
"https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz#7497372ae83ab7a6fffc18d7d7b424c6480ae15e"
integrity
sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==
+stylelint-config-standard-scss@^4.0.0:
+ version "4.0.0"
+ resolved
"https://registry.yarnpkg.com/stylelint-config-standard-scss/-/stylelint-config-standard-scss-4.0.0.tgz#9c1dc99eea73394bf22ad15648a5b1d9b74ff649"
+ integrity
sha512-xizu8PTEyB6zYXBiVg6VtvUYn9m57x+6ZtaOdaxsfpbe5eagLPGNlbYnKfm/CfN69ArUpnwR6LjgsTHzlGbtXQ==
+ dependencies:
+ stylelint-config-recommended-scss "^6.0.0"
+ stylelint-config-standard "^25.0.0"
+
stylelint-config-standard@^25.0.0:
version "25.0.0"
resolved
"https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz#2c916984e6655d40d6e8748b19baa8603b680bff"
@@ -9874,6 +9921,17 @@ stylelint-config-standard@^25.0.0:
dependencies:
stylelint-config-recommended "^7.0.0"
+stylelint-scss@^4.0.0:
+ version "4.2.0"
+ resolved
"https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-4.2.0.tgz#e25fd390ee38a7e89fcfaec2a8f9dce2ec6ddee8"
+ integrity
sha512-HHHMVKJJ5RM9pPIbgJ/XA67h9H0407G68Rm69H4fzFbFkyDMcTV1Byep3qdze5+fJ3c0U7mJrbj6S0Fg072uZA==
+ dependencies:
+ lodash "^4.17.21"
+ postcss-media-query-parser "^0.2.3"
+ postcss-resolve-nested-selector "^0.1.1"
+ postcss-selector-parser "^6.0.6"
+ postcss-value-parser "^4.1.0"
+
stylelint@^14.6.1:
version "14.6.1"
resolved
"https://registry.yarnpkg.com/stylelint/-/stylelint-14.6.1.tgz#aff137b0254515fc36b91921d88a3eb2edc194bf"