Home / Class/ DevToolbarButton Class — astro Architecture

DevToolbarButton Class — astro Architecture

Architecture documentation for the DevToolbarButton class in button.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  0be0f13c_4e4c_ecbe_a0e3_b8c2434de94f["DevToolbarButton"]
  d3ab98c0_1cb3_eac7_2f6c_9333e92bd196["button.ts"]
  0be0f13c_4e4c_ecbe_a0e3_b8c2434de94f -->|defined in| d3ab98c0_1cb3_eac7_2f6c_9333e92bd196
  9aaefa24_cc9a_798a_ebb6_230263c2d07d["size()"]
  0be0f13c_4e4c_ecbe_a0e3_b8c2434de94f -->|method| 9aaefa24_cc9a_798a_ebb6_230263c2d07d
  958a9319_cdd9_512f_c5a9_b1ebb372d980["buttonStyle()"]
  0be0f13c_4e4c_ecbe_a0e3_b8c2434de94f -->|method| 958a9319_cdd9_512f_c5a9_b1ebb372d980
  7e38b273_bee0_b291_7c84_d1dd9205ec13["buttonBorderRadius()"]
  0be0f13c_4e4c_ecbe_a0e3_b8c2434de94f -->|method| 7e38b273_bee0_b291_7c84_d1dd9205ec13
  1495abd0_bbea_7d52_43a3_6536e47cb235["constructor()"]
  0be0f13c_4e4c_ecbe_a0e3_b8c2434de94f -->|method| 1495abd0_bbea_7d52_43a3_6536e47cb235
  535a1f50_cd0a_bbe5_529e_7186b9a9a27c["connectedCallback()"]
  0be0f13c_4e4c_ecbe_a0e3_b8c2434de94f -->|method| 535a1f50_cd0a_bbe5_529e_7186b9a9a27c
  c0bc2133_c99b_6451_e7a8_d102fd27fb18["updateStyle()"]
  0be0f13c_4e4c_ecbe_a0e3_b8c2434de94f -->|method| c0bc2133_c99b_6451_e7a8_d102fd27fb18
  266c2ebd_0d7a_ed4e_7c0d_653c0f0b7e4f["attributeChangedCallback()"]
  0be0f13c_4e4c_ecbe_a0e3_b8c2434de94f -->|method| 266c2ebd_0d7a_ed4e_7c0d_653c0f0b7e4f

Relationship Graph

Source Code

packages/astro/src/runtime/client/dev-toolbar/ui-library/button.ts lines 11–179

export class DevToolbarButton extends HTMLElement {
	_size: ButtonSize = 'small';
	_buttonStyle: ButtonStyle = 'purple';
	_buttonBorderRadius: ButtonBorderRadius = 'normal';

	get size() {
		return this._size;
	}

	set size(value) {
		if (!sizes.includes(value)) {
			settings.logger.error(
				`Invalid size: ${value}, expected one of ${sizes.join(', ')}, got ${value}.`,
			);
			return;
		}
		this._size = value;
		this.updateStyle();
	}

	get buttonStyle() {
		return this._buttonStyle;
	}

	set buttonStyle(value) {
		if (!styles.includes(value)) {
			settings.logger.error(
				`Invalid style: ${value}, expected one of ${styles.join(', ')}, got ${value}.`,
			);
			return;
		}
		this._buttonStyle = value;
		this.updateStyle();
	}

	get buttonBorderRadius() {
		return this._buttonBorderRadius;
	}

	set buttonBorderRadius(value) {
		if (!borderRadii.includes(value)) {
			settings.logger.error(
				`Invalid border-radius: ${value}, expected one of ${borderRadii.join(', ')}, got ${value}.`,
			);
			return;
		}
		this._buttonBorderRadius = value;
		this.updateStyle();
	}

	static observedAttributes = ['button-style', 'size', 'button-border-radius'];

	shadowRoot: ShadowRoot;

	constructor() {
		super();
		this.shadowRoot = this.attachShadow({ mode: 'open' });

		this.shadowRoot.innerHTML = `
			<style>
				button {
					--purple-background: rgba(113, 24, 226, 1);
					--purple-border: rgba(224, 204, 250, 0.33);
					--purple-text: #fff;

					--gray-background: rgba(52, 56, 65, 1);
					--gray-border: rgba(71, 78, 94, 1);
					--gray-text: #fff;

					--red-background: rgba(179, 62, 102, 1);
					--red-border: rgba(249, 196, 215, 0.33);
					--red-text: #fff;

					--green-background: rgba(213, 249, 196, 1);
					--green-border: rgba(61, 125, 31, 1);
					--green-text: #000;

					--yellow-background: rgba(255, 236, 179, 1);
					--yellow-border: rgba(255, 191, 0, 1);
					--yellow-text: #000;

Domain

Frequently Asked Questions

What is the DevToolbarButton class?
DevToolbarButton is a class in the astro codebase, defined in packages/astro/src/runtime/client/dev-toolbar/ui-library/button.ts.
Where is DevToolbarButton defined?
DevToolbarButton is defined in packages/astro/src/runtime/client/dev-toolbar/ui-library/button.ts at line 11.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free