web-dev-qa-db-ja.com

jss色の不透明度を変更する方法

現在、私は次のコードを使用して、jssを使用して要素に色を追加しています。

_const styleSheet = theme => ({
  root: {
     backgroundColor: theme.colors.red,
  },
})_

Color _theme.colors.red_に基づいて不透明度を追加する関数が存在するかどうかを知りたいです。

smtの例:backgroundColor: color(theme.colors.red, .05),

17
GibboK

Material UIにはcolorManipulatorユーティリティファイル があり、fadeメソッドが含まれています。

使用法:

import { fade } from '@material-ui/core/styles/colorManipulator';

/**
 * Set the absolute transparency of a color.
 * Any existing alpha values are overwritten.
 *
 * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()
 * @param {number} value - value to set the alpha channel to in the range 0 -1
 * @returns {string} A CSS color string. Hex input values are returned as rgb
 */
{
    backgroundColor: fade(theme.colors.red, 0.5)
}

color ライブラリも役に立つかもしれません:

import Color from 'color';

次に、コードでそれを参照できます。

{
    backgroundColor: Color(theme.colors.red).alpha(0.5).string()
}
44
Craig Myles

または、Material UI Nextで提供されるフェード機能を使用することもできます。

import {fade} from 'material-ui/styles/colorManipulator';

const theme = createMuiTheme({
  overrides: {
    MuiButton: {
      root: {
        boxShadow: `0 4px 8px 0 ${fade(defaultTheme.palette.primary[500], 0.18)}`,
      }
    },
  }
});

export default theme;

これがどのように機能するかです: https://github.com/mui-org/material-ui/blob/v1-beta/src/styles/colorManipulator.js#L157-L164

別の解決策は https://github.com/styled-components/polished から同様のカラー関数を使用することです

8
Romainpetit

私はを使って解決策を見つけました

 backgroundColor: theme.utils.rgba(theme.axColor.black, 0.7),
4
GibboK

RGBA値を使用できます

const styleSheet = theme => ({
  root: {
     backgroundColor: 'rgba(255, 255, 255, 0.5)',
  },
})

https://facebook.github.io/react-native/docs/colors.html

1
Pandelis

何のために、8桁の16進コードも機能します

const styleSheet = theme => ({
  root: {
     backgroundColor: '#ffffff80',
  },
})
0
Zach Posten

色にアルファチャネルがまだ定義されていない場合は、次のこともできます。

backgroundColor: theme.colors.red + '00' 

これにより、アルファチャネルが0に設定され、透明になります。 '00'から'ff'までの任意の値を追加できます

0
guenis