CSS转Styled Components - 自动生成JS代码
将普通CSS代码转换为Styled Components的模板字符串格式。
UD5工具箱
HTML 转 JSX 主要涉及以下转换:
class 是 JavaScript 的保留关键字。for 同样是 JS 保留关键字,用于 label 标签。style="color:red" 转为对象 style={'{'}color:'red'{'}'}。onclick → onClick,采用 camelCase 命名。<br> 必须写为 <br />,<img> 必须闭合。<!-- --> 转为 {'/* */'}。tabindex → tabIndex,aria-label 则保持不变。React 使用 JSX 语法,它本质上是 JavaScript 的语法扩展。在 JavaScript 中,class 是一个保留关键字(用于定义类)。为了避免冲突,React 团队选择了 className 作为替代。在底层,JSX 会被编译为 React.createElement() 调用,属性名需要是合法的 JavaScript 标识符。同样道理,for 属性(用于 <label>)被替换为 htmlFor。
在 JSX 中,style 属性接受一个 JavaScript 对象,而不是字符串:
HTML:style="color: red; font-size: 16px;"
JSX:style={'{'} color: 'red', fontSize: '16px' {'}'}
注意:CSS 属性名必须使用 camelCase(如 font-size → fontSize),属性值通常用字符串包裹(纯数字值可以不加引号)。本工具会自动完成这个转换。
在 JSX 中,所有标签都必须正确闭合。以下 HTML 空元素在 JSX 中必须以 /> 结尾:
<area />、<base />、<br />、<col />、<embed />、<hr />、<img />、<input />、<link />、<meta />、<param />、<source />、<track />、<wbr />
例如 <img src="photo.jpg"> 在 JSX 中必须写为 <img src="photo.jpg" />,否则会报错。
好消息是:data-* 和 aria-* 属性在 JSX 中保持原样,不需要转换!
例如:data-user-id="123" 和 aria-label="关闭" 在 JSX 中写法完全相同。这是因为它们使用连字符命名,不会与 JavaScript 保留关键字冲突,React 也原生支持这些属性。本工具会自动识别并保留这些属性不变。
React 19 对 JSX 做了一些改进,但属性命名基本保持一致。主要变化在于:
ref 可以直接作为 prop 传递,不再需要 forwardRef。className、htmlFor 等核心转换规则保持不变。本工具生成的 JSX 代码兼容 React 17、18 和 19。
大部分情况下可以直接使用,但需要注意:
<script> 标签,在 JSX 中需要特殊处理(通常使用 dangerouslySetInnerHTML 或移到组件逻辑中)。onclick="doSomething()")转换后变为 onClick="doSomething()",但在 React 中应该使用函数引用而非字符串,你需要手动调整为 onClick={'{'}doSomething{'}'}。 )在 JSX 中通常可以保留,但在某些情况下可能需要用 Unicode 替代。建议转换后检查事件处理函数和脚本相关部分。
SVG 在 JSX 中的属性也需要 camelCase 转换:
stroke-width → strokeWidthfill-opacity → fillOpacityclip-path → clipPathstroke-dasharray → strokeDasharrayxlink:href → xlinkHref(或直接使用 href)本工具会自动处理 SVG 相关的属性转换。
将普通CSS代码转换为Styled Components的模板字符串格式。
将HTML标记转换为Pug(原Jade)的缩进语法模板,去除尖括号,让模板开发更快速。
通过注册CSS属性的类型和初始值,演示如何让渐变等属性实现平滑动画。
设置总页数与当前页,生成数字式或省略式分页导航条。
利用 `:target` 伪类创建无需JavaScript的弹窗组件,支持关闭按钮和遮罩层。
在Emoji和它的JavaScript Unicode转义序列(如 \u{1F600})之间进行转换。
将Markdown文本即时转换为HTML代码,实时预览样式,直接复制HTML用于网站发布。
拖拽文本框、下拉框、单选复选等元素,排列组成表单,导出整洁的HTML表单结构代码。
使用原生HTML Popover属性创建提示、菜单与对话框,展示四种触发方式及样式定制。
将Pug模板语法编译回标准HTML代码,支持变量与混入预览,辅助模板调试。
在时间轴上拖拽添加属性关键帧,实时预览动画并生成 @keyframes 代码。
展示一些常用内置HTML元素和自定义元素例子,提供代码复制。
生成经典的“...”打字机加载动画,可定颜色和大小,纯CSS实现。
预置多种常见表单(登录、联系、搜索)的HTML代码,点击即可复制并稍作修改。
使用CSV格式定义多个色标的位置和颜色,批量生成复杂的CSS渐变代码。
常用HTML实体编码(如© ©)的图形化速查表,点击即可复制实体名称或数字代码。
生成形似iOS或Android的开关切换按钮,支持动画和自定义颜色。
生成实现点击锚点平滑滚动到目标位置所需的JS代码及CSS scroll-behavior。
对简单混淆的JS进行格式化,并尝试将短变量名替换为更具描述性的名称,提高可读性。
在时间轴上拖拽一个元素的位置和样式,自动录制并生成对应的CSS @keyframes动画代码。
生成用于网页各区块间的波浪或倾斜过渡分割线,导出为SVG或CSS代码。
配置字体、颜色、背景,生成可粘贴到浏览器控制台的%c格式化日志代码。
上传序列帧图片,合成spritesheet并生成对应CSS steps()帧动画代码。
输入网址,提取页面定义的所有CSS自定义属性(颜色),生成直观调色板。
选中页面上的某个HTML元素,利用html2canvas将其渲染为PNG图片下载。
在线CSS动画代码生成工具,可视化定义关键帧、持续时间、缓动函数等,生成@keyframes动画CSS。
在单页内模拟MPA过渡效果,自定义进场/出场动画,体验View Transitions API丝滑切换。
打造自定义形状和颜色的选择框,生成隐藏原生控件并替换样式的完整代码。
在线生成纯CSS三角形、箭头、气泡指示器,调整方向、大小和颜色,一键复制CSS代码。
粘贴代码并选择高亮主题,将代码片段渲染为精美的PNG图片,便于社交媒体分享。