Home / Function/ slide() — svelte Function Reference

slide() — svelte Function Reference

Architecture documentation for the slide() function in index.js from the svelte codebase.

Entity Profile

Dependency Diagram

graph TD
  e1d4155e_0e1f_1f08_0f4d_b6f9ccd8921c["slide()"]
  8795a504_2189_bf07_fb96_096bc8c92d25["index.js"]
  e1d4155e_0e1f_1f08_0f4d_b6f9ccd8921c -->|defined in| 8795a504_2189_bf07_fb96_096bc8c92d25
  f0bb6a10_e53b_296d_1955_436ff5ff5c40["transition_slide_display()"]
  e1d4155e_0e1f_1f08_0f4d_b6f9ccd8921c -->|calls| f0bb6a10_e53b_296d_1955_436ff5ff5c40
  style e1d4155e_0e1f_1f08_0f4d_b6f9ccd8921c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/svelte/src/transition/index.js lines 108–150

export function slide(node, { delay = 0, duration = 400, easing = cubic_out, axis = 'y' } = {}) {
	const style = getComputedStyle(node);

	if (DEV && !slide_warning && /(contents|inline|table)/.test(style.display)) {
		slide_warning = true;
		Promise.resolve().then(() => (slide_warning = false));
		w.transition_slide_display(style.display);
	}

	const opacity = +style.opacity;
	const primary_property = axis === 'y' ? 'height' : 'width';
	const primary_property_value = parseFloat(style[primary_property]);
	const secondary_properties = axis === 'y' ? ['top', 'bottom'] : ['left', 'right'];
	const capitalized_secondary_properties = secondary_properties.map(
		(e) => /** @type {'Left' | 'Right' | 'Top' | 'Bottom'} */ (`${e[0].toUpperCase()}${e.slice(1)}`)
	);
	const padding_start_value = parseFloat(style[`padding${capitalized_secondary_properties[0]}`]);
	const padding_end_value = parseFloat(style[`padding${capitalized_secondary_properties[1]}`]);
	const margin_start_value = parseFloat(style[`margin${capitalized_secondary_properties[0]}`]);
	const margin_end_value = parseFloat(style[`margin${capitalized_secondary_properties[1]}`]);
	const border_width_start_value = parseFloat(
		style[`border${capitalized_secondary_properties[0]}Width`]
	);
	const border_width_end_value = parseFloat(
		style[`border${capitalized_secondary_properties[1]}Width`]
	);
	return {
		delay,
		duration,
		easing,
		css: (t) =>
			'overflow: hidden;' +
			`opacity: ${Math.min(t * 20, 1) * opacity};` +
			`${primary_property}: ${t * primary_property_value}px;` +
			`padding-${secondary_properties[0]}: ${t * padding_start_value}px;` +
			`padding-${secondary_properties[1]}: ${t * padding_end_value}px;` +
			`margin-${secondary_properties[0]}: ${t * margin_start_value}px;` +
			`margin-${secondary_properties[1]}: ${t * margin_end_value}px;` +
			`border-${secondary_properties[0]}-width: ${t * border_width_start_value}px;` +
			`border-${secondary_properties[1]}-width: ${t * border_width_end_value}px;` +
			`min-${primary_property}: 0`
	};
}

Subdomains

Frequently Asked Questions

What does slide() do?
slide() is a function in the svelte codebase, defined in packages/svelte/src/transition/index.js.
Where is slide() defined?
slide() is defined in packages/svelte/src/transition/index.js at line 108.
What does slide() call?
slide() calls 1 function(s): transition_slide_display.

Analyze Your Own Codebase

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

Try Supermodel Free