#component #leptos #unstyled #radix-ui

leptix_primitives

Leptos的无障碍访问和未样式的组件

4个版本

0.2.2 2024年8月14日
0.2.1 2024年7月29日
0.2.0 2024年6月29日
0.1.0 2024年5月1日

#7 in 无障碍访问

Download history 108/week @ 2024-04-29 5/week @ 2024-05-20 212/week @ 2024-06-24 41/week @ 2024-07-01 7/week @ 2024-07-08 3/week @ 2024-07-22 220/week @ 2024-07-29 4/week @ 2024-08-05 121/week @ 2024-08-12

每月348次下载

MIT许可证

205KB
6K SLoC

logo

Leptix Primitives

Leptos的无障碍访问和未样式的组件

This library is in early development.

实时演示


可用组件

注意:对话框和需要浮动功能的组件尚未实现;有关它们的跟踪问题,请见此处此处(分别)

组件名称
手风琴
宽高比
头像
复选框
可折叠
标签
进度条
单选组
滚动区域
分隔符
滑动条
开关
选项卡
切换
切换组
工具栏

服务器端渲染

在您的项目的features部分启用ssr功能标志

[features]
csr = ...
hydrate = ...
ssr = [
  "leptix_primitives/ssr",

  # the rest of your leptos ssr dependencies ...
  "leptos/ssr",
  "dep:leptos_actix",
  ...
]

使用方法

这些小代码片段直接从radix-ui的文档网站移植过来,所以您在JavaScript中会有这样的代码

import React from "react";
import * as Checkbox from "@radix-ui/react-checkbox";
import { CheckIcon } from "@radix-ui/react-icons";

const CheckboxDemo = () => (
  <form>
    <div className="flex items-center">
      <Checkbox.Root
        className="shadow-blackA4 hover:bg-violet3 flex h-[25px] w-[25px] appearance-none items-center justify-center rounded-[4px] bg-white shadow-[0_2px_10px] outline-none focus:shadow-[0_0_0_2px_black]"
        defaultChecked
        id="c1"
      >
        <Checkbox.Indicator className="text-violet11">
          <CheckIcon />
        </Checkbox.Indicator>
      </Checkbox.Root>
      <label
        className="pl-[15px] text-[15px] leading-none text-white"
        htmlFor="c1"
      >
        Accept terms and conditions.
      </label>
    </div>
  </form>
);

您将使用Rust和Leptos来获得这样的代码

use leptos::*;
use leptix_primitives::checkbox::*;

#[component]
fn CheckboxDemo() -> impl IntoView {
  view! {
    <form>
      <div class="flex items-center">
        <CheckboxRoot
          default_checked=CheckedState::Checked(true)
          attr:class="shadow-blackA4 hover:bg-violet3 flex h-[25px] w-[25px] appearance-none items-center justify-center rounded-[4px] bg-white shadow-[0_2px_10px] outline-none focus:shadow-[0_0_0_2px_black]"
          attr:id="c1"
        >
          <CheckboxIndicator attr:class="text-violet11">
            <CheckIcon/>
          </CheckboxIndicator>
        </CheckboxRoot>

        <label class="pl-[15px] text-[15px] leading-none" for="c1">
          <span class="select-none">"Accept terms and conditions."</span>
        </label>
      </div>
    </form>
  }
}

示例

贡献

在提交拉取请求之前,请参阅CONTRIBUTING.md以了解您应该知道的内容。

依赖项

~23–36MB
~585K SLoC