diff --git a/packages/docusaurus-theme/src/theme/Root.tsx b/packages/docusaurus-theme/src/theme/Root.tsx index 38857785c7a..310d130e787 100644 --- a/packages/docusaurus-theme/src/theme/Root.tsx +++ b/packages/docusaurus-theme/src/theme/Root.tsx @@ -16,7 +16,6 @@ import Head from '@docusaurus/Head'; import { Props } from '@theme/Root'; import { css, Global } from '@emotion/react'; import { useEuiTheme } from '@elastic/eui'; -import '@elastic/eui/dist/eui_theme_light.css'; import { AppThemeProvider } from '../components/theme_context'; import { getGlobalStyles } from './Root.styles'; diff --git a/packages/eui/changelogs/upcoming/8045.md b/packages/eui/changelogs/upcoming/8045.md new file mode 100644 index 00000000000..7f8622ff181 --- /dev/null +++ b/packages/eui/changelogs/upcoming/8045.md @@ -0,0 +1,8 @@ +**Breaking changes** + +- Removed the following exported `.css` files: + - `@elastic/eui/dist/eui_theme_light.css` + - `@elastic/eui/dist/eui_theme_light.min.css` + - `@elastic/eui/dist/eui_theme_dark.css` + - `@elastic/eui/dist/eui_theme_dark.min.css` +- All EUI components are now on CSS-in-JS. A CSS file/import in consuming applications is no longer needed, and is safe to remove. diff --git a/packages/eui/cypress/support/component-index.html b/packages/eui/cypress/support/component-index.html index 2c3cd4b3d41..5d16cfcc6af 100644 --- a/packages/eui/cypress/support/component-index.html +++ b/packages/eui/cypress/support/component-index.html @@ -5,7 +5,6 @@ - Components App diff --git a/packages/eui/cypress/webpack.config.js b/packages/eui/cypress/webpack.config.js index 46c175e0b35..6c6a55cbd7c 100644 --- a/packages/eui/cypress/webpack.config.js +++ b/packages/eui/cypress/webpack.config.js @@ -47,19 +47,6 @@ module.exports = { plugins: ['istanbul'], }, }, - { - test: /\.css$/, - use: [ - { - loader: 'style-loader', - options: { - insert: 'meta[name="css-styles"]', - }, - }, - 'css-loader', - ], - exclude: /node_modules/, - }, ], strictExportPresence: false, }, diff --git a/packages/eui/scripts/compile-scss.js b/packages/eui/scripts/compile-scss.js index 9b2b462c1f1..38e6a49ee48 100755 --- a/packages/eui/scripts/compile-scss.js +++ b/packages/eui/scripts/compile-scss.js @@ -1,73 +1,14 @@ const path = require('path'); const util = require('util'); const fs = require('fs'); -const globModule = require('glob'); const copyFilePromise = util.promisify(fs.copyFile); const chalk = require('chalk'); -const postcss = require('postcss'); -const sass = require('sass'); - -const postcssConfiguration = require('../postcss.config.js'); - -const targetTheme = process.env['TARGET_THEME']; - -const writeFile = util.promisify(fs.writeFile); -const mkdir = util.promisify(fs.mkdir); -const glob = util.promisify(globModule); - -const postcssConfigurationWithMinification = { - ...postcssConfiguration, - plugins: [ - ...postcssConfiguration.plugins, - require('cssnano')({ preset: 'default' }), - ], -}; async function compileScssFiles({ - sourcePattern, destinationDirectory, docsVariablesDirectory, }) { - try { - await mkdir(destinationDirectory); - } catch (err) { - if (err.code !== 'EEXIST') { - throw err; - } - } - - const inputFilenames = (await glob(sourcePattern, undefined)).filter( - (filename) => { - if (targetTheme == null) return true; - return filename === `src/themes/amsterdam/theme_${targetTheme}.scss`; - } - ); - - await Promise.all( - inputFilenames.map(async (inputFilename) => { - console.log(chalk`{cyan …} Compiling {gray ${inputFilename}}`); - - try { - const { name } = path.parse(inputFilename); - const outputFilenames = await compileScssFile({ - inputFilename, - outputCssFilename: path.join(destinationDirectory, `eui_${name}.css`), - }); - - console.log( - chalk`{green ✔} Finished compiling {gray ${inputFilename}} to ${outputFilenames - .map((filename) => chalk.gray(filename)) - .join(', ')}` - ); - } catch (error) { - console.log( - chalk`{red ✗} Failed to compile {gray ${inputFilename}} with ${error.stack}` - ); - } - }) - ); - // Copy static JSON Sass var files from src-docs/src/views/theme/_json to dist const jsonFilesToCopy = [ 'eui_theme_dark.json', @@ -90,44 +31,8 @@ async function compileScssFiles({ ); } -async function compileScssFile({ inputFilename, outputCssFilename }) { - const outputCssMinifiedFilename = outputCssFilename.replace( - /\.css$/, - '.min.css' - ); - - const { css: renderedCss } = sass.renderSync({ - file: inputFilename, - outFile: outputCssFilename, - logger: sass.Logger.silent, // Silence warnings about division - we won't be on Sass for much longer - }); - - const { css: postprocessedCss } = await postcss(postcssConfiguration).process( - renderedCss, - { - from: outputCssFilename, - to: outputCssFilename, - } - ); - - const { css: postprocessedMinifiedCss } = await postcss( - postcssConfigurationWithMinification - ).process(renderedCss, { - from: outputCssFilename, - to: outputCssMinifiedFilename, - }); - - await Promise.all([ - writeFile(outputCssFilename, postprocessedCss), - writeFile(outputCssMinifiedFilename, postprocessedMinifiedCss), - ]); - - return [outputCssFilename, outputCssMinifiedFilename]; -} - if (require.main === module) { compileScssFiles({ - sourcePattern: path.join('src/themes/amsterdam', 'theme_*.scss'), destinationDirectory: 'dist', docsVariablesDirectory: 'src-docs/src/views/theme/_json', });