gradio
1<script lang="ts">
2export let label: string | null = null;
3export let Icon: any;
4export let show_label = true;
5export let disable = false;
6export let float = true;
7</script>
8
9<label
10for=""
11class:hide={!show_label}
12class:sr-only={!show_label}
13class:float
14class:hide-label={disable}
15data-testid="block-label"
16>
17<span>
18<Icon />
19</span>
20{label}
21</label>
22
23<style>
24label {
25display: inline-flex;
26align-items: center;
27z-index: var(--layer-2);
28box-shadow: var(--block-label-shadow);
29border: var(--block-label-border-width) solid var(--border-color-primary);
30border-top: none;
31border-left: none;
32border-radius: var(--block-label-radius);
33background: var(--block-label-background-fill);
34padding: var(--block-label-padding);
35pointer-events: none;
36color: var(--block-label-text-color);
37font-weight: var(--block-label-text-weight);
38font-size: var(--block-label-text-size);
39line-height: var(--line-sm);
40}
41:global(.gr-group) label {
42border-top-left-radius: 0;
43}
44
45label.float {
46position: absolute;
47top: var(--block-label-margin);
48left: var(--block-label-margin);
49}
50label:not(.float) {
51position: static;
52margin-top: var(--block-label-margin);
53margin-left: var(--block-label-margin);
54}
55
56.hide {
57height: 0;
58}
59
60span {
61opacity: 0.8;
62margin-right: var(--size-2);
63width: calc(var(--block-label-text-size) - 1px);
64height: calc(var(--block-label-text-size) - 1px);
65}
66.hide-label {
67box-shadow: none;
68border-width: 0;
69background: transparent;
70overflow: visible;
71}
72</style>
73