Socket
Socket
Sign inDemoInstall

@material/feature-targeting

Package Overview
Dependencies
1
Maintainers
0
Versions
1649
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

@material/feature-targeting


Version published
Maintainers
0
Created

Package description

What is @material/feature-targeting?

@material/feature-targeting is a utility package from Material Components for the web (MDC Web) that provides a way to target specific CSS features. It allows developers to write CSS that is conditionally applied based on the presence of certain features, such as CSS variables or specific browser capabilities.

What are @material/feature-targeting's main functionalities?

CSS Variable Support

This feature allows you to write CSS rules that are only applied if the browser supports CSS variables. The mixin `supports-css-variables` checks for CSS variable support and applies the enclosed styles if the feature is available.

/* Import the feature targeting mixins */
@use '@material/feature-targeting/feature-targeting';

/* Define a CSS rule that only applies if CSS variables are supported */
@include feature-targeting.supports-css-variables() {
  .my-class {
    color: var(--my-color, black);
  }
}

Custom Property Fallbacks

This feature allows you to provide fallback styles for browsers that do not support CSS variables. The mixin `supports-css-variables` is used to conditionally apply the CSS variable-based styles, while the fallback styles are applied unconditionally.

/* Import the feature targeting mixins */
@use '@material/feature-targeting/feature-targeting';

/* Define a CSS rule with a fallback for browsers that do not support CSS variables */
.my-class {
  color: black;
  @include feature-targeting.supports-css-variables() {
    color: var(--my-color, black);
  }
}

Other packages similar to @material/feature-targeting

Readme

Source

Feature Targeting

MDC Feature Targeting provides infrastructure to allow CSS styles to be included or excluded categorically.

Most of the time, you shouldn't need to depend on mdc-feature-targeting directly. However, understanding it can be useful if you're interested in having more control over when certain types of MDC styles are emitted.

Installation

npm install @material/feature-targeting

Basic Usage

Styles

Authoring component styles:

@use "@material/feature-targeting";

@mixin my-component-core-styles($query: feature-targeting.all()) {
  $feat-structure: feature-targeting.create-target($query, structure);

  @include feature-targeting.targets($feat-structure) {
    // ...
  }
}

Consuming component styles:

@use "@material/feature-targeting";
@use "my-component-mixins";

// To include all styles (using the default of mdc-feature-all() defined above):
@include my-component-core-styles;

// Or, to include a specific subset of styles:
@include my-component-core-styles(structure);
@include my-component-core-styles(feature-targeting.any(color, typography));
// The above two @includes and the following @include would produce equivalent results:
@include my-component-core-styles(feature-targeting.without(animation));

Sass Mixins and Functions

MixinDescription
targets($feature-targets...)Conditionalizes content to only be emitted if the given feature target(s) is/are queried.
FunctionDescription
create-target($feature-query, $targeted-feature)Returns a variable to be passed to targets in order to filter emitted styles.
all($feature-queries...)Returns a query object which will result in emitting targets blocks that match all of the specified features. Passing no arguments results in all blocks being emitted, which is the most common use case.
any($feature-queries...)Returns a query object which will result in emitting targets blocks that match any of the specified features. Passing no arguments results in no blocks being emitted.
without($feature-query)Returns a query object which will result in emitting targets blocks that do not match the specified feature.

$feature-query and $feature-queries refer to one or more of the values listed below under Supported Features.

Supported Features

MDC Web's styles are currently split according to the following features:

  • structure - All baseline styles that don't fit into any other category
  • animation - Styles responsible for causing animations and transitions to occur
  • color - Color-specific styles which rely on mdc-theme variables
  • typography - Typography-specific styles which rely on mdc-typography

Keywords

FAQs

Last updated on 26 Jun 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc