You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
769 B
39 lines
769 B
<script lang="ts">
|
|
export let value = "";
|
|
export let small = false;
|
|
|
|
let style = "";
|
|
|
|
$: {
|
|
let hash = 0;
|
|
for (let i = 0; i < value.length; i++) {
|
|
hash = value.charCodeAt(i) + ((hash << 5) - hash);
|
|
hash = hash & hash;
|
|
}
|
|
|
|
style = `color: hsl(${(hash << 4) % 360}, ${40 + (hash % 8)}%, ${50+(hash % 4)}%)`
|
|
}
|
|
</script>
|
|
|
|
<div style={style} class="tag" class:small>{value}{small?":":""}</div>
|
|
|
|
<style>
|
|
div.tag {
|
|
padding: 0.25em 0.75ch;
|
|
margin: 0.25em 0.5ch;
|
|
font-size: 0.75em;
|
|
border: 1px solid;
|
|
}
|
|
|
|
div.tag.small {
|
|
font-size: 1em;
|
|
padding: 0;
|
|
margin: 0;
|
|
margin-right: 0.50ch;
|
|
border: none;
|
|
}
|
|
|
|
:global(div.ql-list-item:hover) div.tag.small {
|
|
filter: brightness(150%);
|
|
}
|
|
</style>
|