41 lines
3.2 KiB
HTML
41 lines
3.2 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN" data-end="vue3" data-slug="slider">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>slider · Vue 3 预渲染</title>
|
|
<link rel="stylesheet" href="../../.design_library/kole-ui/colors_and_type.css">
|
|
<link rel="stylesheet" href="../../frameworks/Slider.css">
|
|
<style>
|
|
/* 演示页的 body 口径(见 frameworks/*.html 的 <style>):组件 CSS 不写 body 样式,
|
|
而 .btn 这类 inline-flex 元素的高度依赖行高与留白,缺了就会塌成 0 高。 */
|
|
body { margin: 0; padding: 24px; background: var(--kole-color-page-bg); color: var(--kole-color-text-body);
|
|
font-family: var(--kole-font-family); font-size: 14px; line-height: 22px; }
|
|
#kole-end-preview { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
|
|
html.kole-dark body { background: var(--kole-color-page-bg); color: var(--kole-color-text-body); }
|
|
</style>
|
|
<style>
|
|
|
|
.kole-slider { position: relative; display: flex; align-items: center; font-family: var(--font-family, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif); }
|
|
.kole-slider.is-disabled { opacity: .5; pointer-events: none; }
|
|
.kole-slider-track { position: relative; flex: 1; height: 40px; }
|
|
.kole-slider-rail { position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%); height: 4px; background: #E8ECF1; border-radius: 2px; }
|
|
.kole-slider-fill { position: absolute; top: 50%; transform: translateY(-50%); height: 4px; background: #2F54EB; border-radius: 2px; }
|
|
.kole-slider-handle { position: absolute; top: 50%; width: 14px; height: 14px; border-radius: 50%; background: #fff;
|
|
border: 2px solid #2F54EB; transform: translate(-50%, -50%); cursor: pointer; box-shadow: 0 1px 3px rgba(0,0,0,0.15); transition: box-shadow .15s; }
|
|
.kole-slider-handle:hover, .kole-slider-handle:focus { box-shadow: 0 0 0 4px rgba(47,84,235,0.2); outline: none; }
|
|
.kole-slider-ticks { position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%); height: 0; pointer-events: none; }
|
|
.kole-slider-tick { position: absolute; top: 0; width: 2px; height: 8px; background: #E8ECF1; transform: translate(-50%, -50%); }
|
|
.kole-slider-value { margin-left: 12px; font-size: 14px; color: #262626; display: inline-flex; align-items: center; gap: 6px; }
|
|
.kole-slider-value input { width: 56px; height: 28px; text-align: center; border: 1px solid #E8ECF1; border-radius: 4px; font-size: 13px; outline: none; color: #262626; }
|
|
.kole-slider-value input:focus { border-color: #2F54EB; box-shadow: 0 0 0 2px rgba(47,84,235,0.2); }
|
|
|
|
</style>
|
|
</head>
|
|
<body class="kole-end-preview-body">
|
|
<!-- 该端实现(frameworks/Slider.vue3.vue)的离线预渲染产物。类名与该端源码一致(tools/build-end-preview.mjs 断言)。 -->
|
|
<div id="kole-end-preview" data-end="vue3" data-slug="slider">
|
|
<div class="kole-slider" vmodel="volume" data-v-slider><div class="kole-slider-track" data-v-slider><div class="kole-slider-rail" data-v-slider></div><div class="kole-slider-fill" style="left:0%;width:0%;" data-v-slider></div><!----><!--[--><div class="kole-slider-handle" style="left:0%;" data-v-slider></div><!--]--></div><div class="kole-slider-value" data-v-slider><input type="number" value="0" data-v-slider></div></div>
|
|
</div>
|
|
</body>
|
|
</html>
|