UNPKG

@polymer/polymer

Version:

The Polymer library makes it easy to create your own web components. Give your element some markup and properties, and then use it on a site. Polymer provides features like dynamic templates and data binding to reduce the amount of boilerplate you need to

66 lines (59 loc) 2.05 kB
// tslint:disable:variable-name Describing an API that's defined elsewhere. import {cssFromModules} from '../utils/style-gather.js'; export {CustomStyle}; /** * Custom element for defining styles in the main document that can take * advantage of [shady DOM](https://github.com/webcomponents/shadycss) shims * for style encapsulation, custom properties, and custom mixins. * * - Document styles defined in a `<custom-style>` are shimmed to ensure they * do not leak into local DOM when running on browsers without native * Shadow DOM. * - Custom properties can be defined in a `<custom-style>`. Use the `html` selector * to define custom properties that apply to all custom elements. * - Custom mixins can be defined in a `<custom-style>`, if you import the optional * [apply shim](https://github.com/webcomponents/shadycss#about-applyshim) * (`shadycss/apply-shim.html`). * * To use: * * - Import `custom-style.html`. * - Place a `<custom-style>` element in the main document, wrapping an inline `<style>` tag that * contains the CSS rules you want to shim. * * For example: * * ```html * <!-- import apply shim--only required if using mixins --> * <link rel="import" href="bower_components/shadycss/apply-shim.html"> * <!-- import custom-style element --> * <link rel="import" href="bower_components/polymer/lib/elements/custom-style.html"> * * <custom-style> * <style> * html { * --custom-color: blue; * --custom-mixin: { * font-weight: bold; * color: red; * }; * } * </style> * </custom-style> * ``` */ declare class CustomStyle extends HTMLElement { /** * Returns the light-DOM `<style>` child this element wraps. Upon first * call any style modules referenced via the `include` attribute will be * concatenated to this element's `<style>`. * * @returns This element's light-DOM `<style>` */ getStyle(): HTMLStyleElement|null; } declare global { interface HTMLElementTagNameMap { "custom-style": CustomStyle; } }