#css #reactjs #flexbox #next.js #styled-components
#css #reactjs #flexbox #next.js #styled-components
Вопрос:
Я хочу использовать новое свойство gap от flexbox в своем Next.js
приложении, используя styled-components
без потери поддержки, например, Safari. Я нашел это полизаполнение https://www.npmjs.com/package/flex-gap-polyfill Но мне трудно понять, где и подходит ли это вообще. Если я правильно понял, Next поддерживает использование PostCSS
, но styled-components
не делает? Как мне заставить полизаполнение, связанное выше, работать с этими двумя компонентами?
Пример кода, который я хотел бы написать и который поддерживается на современных платформах:
display: flex;
flex-direction: row;
gap: 16px;
Код, который я обнаружил, можно использовать styled-components
с. Next
Файл _document.js
import Document from "next/document";
import { ServerStyleSheet } from "styled-components";
export default class MyDocument extends Document {
static async getInitialProps(ctx) {
const sheet = new ServerStyleSheet();
const originalRenderPage = ctx.renderPage;
try {
ctx.renderPage = () =>
originalRenderPage({
enhanceApp: (App) => (props) =>
sheet.collectStyles(<App {...props} />),
});
const initialProps = await Document.getInitialProps(ctx);
return {
...initialProps,
styles: (
<>
{initialProps.styles}
{sheet.getStyleElement()}
</>
),
};
} finally {
sheet.seal();
}
}
Это мой postcss.config.js
module.exports = {
plugins: {
autoprefixer: {},
"flex-gap-polyfill": {},
"postcss-flexbugs-fixes": {},
"postcss-preset-env": {
autoprefixer: {
flexbox: "no-2009",
},
stage: 3,
features: {
"custom-properties": false,
},
},
},
};
Комментарии:
1. Да, NextJS поддерживает styled-components и код для _document.js файл для настройки библиотеки для SSR указан правильно. Но я не понимаю, в чем заключается ваш актуальный вопрос
2. @tobzilla90 Я отредактировал для ясности, но мой вопрос в основном таков: как мне использовать связанное полизаполнение со стилизованными компонентами и next.js
3. Я сам не использовал polyfills и PostCSS, но у Next JS есть страница в документах о PostCSS nextjs.org/docs/advanced-features/customizing-postcss-config а также пример проекта на их странице в github github.com/vercel/next.js/tree/canary/examples
4. @tobzilla90 Я изучил это и попытался добавить плагин, как они описывают, но он ничего не сделал.