119 lines
2.3 KiB
HTML
119 lines
2.3 KiB
HTML
<!DOCTYPE html>
|
|
<title>Custom Functions: @function within @layer</title>
|
|
<link rel="help" href="https://drafts.csswg.org/css-mixins-1/#conditional-rules">
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="resources/utils.js"></script>
|
|
|
|
<div id=target></div>
|
|
<div id=main></div>
|
|
|
|
<!-- To pass, a test must produce matching computed values for --actual and
|
|
--expected on #target. -->
|
|
|
|
<template data-name="Single function within anonymous layer">
|
|
<style>
|
|
@layer {
|
|
@function --f() { result: 1px; }
|
|
}
|
|
#target {
|
|
--actual: --f();
|
|
--expected: 1px;
|
|
}
|
|
</style>
|
|
</template>
|
|
|
|
<template data-name="Last anonymous layer wins">
|
|
<style>
|
|
@layer {
|
|
@function --f() { result: 1px; }
|
|
}
|
|
@layer {
|
|
@function --f() { result: 2px; }
|
|
}
|
|
#target {
|
|
--actual: --f();
|
|
--expected: 2px;
|
|
}
|
|
</style>
|
|
</template>
|
|
|
|
<template data-name="Unlayered styles win">
|
|
<style>
|
|
@layer {
|
|
@function --f() { result: 1px; }
|
|
}
|
|
@layer {
|
|
@function --f() { result: 2px; }
|
|
}
|
|
@function --f() { result: 3px; }
|
|
#target {
|
|
--actual: --f();
|
|
--expected: 3px;
|
|
}
|
|
</style>
|
|
</template>
|
|
|
|
<template data-name="Unlayered styles win, reverse">
|
|
<style>
|
|
@function --f() { result: 3px; }
|
|
@layer {
|
|
@function --f() { result: 1px; }
|
|
}
|
|
@layer {
|
|
@function --f() { result: 2px; }
|
|
}
|
|
#target {
|
|
--actual: --f();
|
|
--expected: 3px;
|
|
}
|
|
</style>
|
|
</template>
|
|
|
|
<template data-name="Single named layer">
|
|
<style>
|
|
@layer base {
|
|
@function --f() { result: 10px; }
|
|
}
|
|
#target {
|
|
--actual: --f();
|
|
--expected: 10px;
|
|
}
|
|
</style>
|
|
</template>
|
|
|
|
<template data-name="Named layers">
|
|
<style>
|
|
@layer base {
|
|
@function --f() { result: 10px; }
|
|
}
|
|
@layer theme {
|
|
@function --f() { result: 20px; }
|
|
}
|
|
#target {
|
|
--actual: --f();
|
|
--expected: 20px;
|
|
}
|
|
</style>
|
|
</template>
|
|
|
|
<template data-name="Named layers, reordered">
|
|
<style>
|
|
@layer theme, base;
|
|
|
|
@layer base {
|
|
@function --f() { result: 10px; } /* Winner */
|
|
}
|
|
@layer theme {
|
|
@function --f() { result: 20px; }
|
|
}
|
|
#target {
|
|
--actual: --f();
|
|
--expected: 10px;
|
|
}
|
|
</style>
|
|
</template>
|
|
|
|
<script>
|
|
test_all_templates();
|
|
</script>
|