Использование разрыва flexbox со стилизованными компонентами

#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 Я изучил это и попытался добавить плагин, как они описывают, но он ничего не сделал.