mirror of
https://github.com/lucide-icons/lucide.git
synced 2026-11-10 13:18:25 +00:00
Compare commits
62
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
80a2d2540d | ||
|
|
658573b017 | ||
|
|
5136572c10 | ||
|
|
4f8088fd90 | ||
|
|
ae40cfbc73 | ||
|
|
cdd7db1ce6 | ||
|
|
f930bbe07c | ||
|
|
f229f83f0c | ||
|
|
b442632ee6 | ||
|
|
078a0b2339 | ||
|
|
5d78605650 | ||
|
|
ab61fa277b | ||
|
|
bb1329e512 | ||
|
|
b5b5d95933 | ||
|
|
7b589f2b5c | ||
|
|
2d36863568 | ||
|
|
7291cbcc0f | ||
|
|
4c663b9a32 | ||
|
|
63369b1ac0 | ||
|
|
f07465f82e | ||
|
|
60d583ce4e | ||
|
|
5828ecb38f | ||
|
|
031b226ac6 | ||
|
|
35d535a477 | ||
|
|
8930dfa827 | ||
|
|
c67c9bdbfb | ||
|
|
52d7c549c3 | ||
|
|
9cb4e49849 | ||
|
|
f59db07ef9 | ||
|
|
46bcf1fa89 | ||
|
|
7d15e8466a | ||
|
|
ce2d598d96 | ||
|
|
627b4c1672 | ||
|
|
ee02505468 | ||
|
|
7c8fbb4813 | ||
|
|
8a3f8c6bb9 | ||
|
|
7e938845f0 | ||
|
|
0d6c47d545 | ||
|
|
2f5af2ceb5 | ||
|
|
448bcc90fe | ||
|
|
2fed527c00 | ||
|
|
8fc6b70aa5 | ||
|
|
cf0e1e44ba | ||
|
|
27c997fc14 | ||
|
|
622d9efa24 | ||
|
|
b61e540082 | ||
|
|
d21b575107 | ||
|
|
32776e8242 | ||
|
|
bea6fdcac3 | ||
|
|
e86c474fd5 | ||
|
|
6c36c9ba80 | ||
|
|
e8a2214eee | ||
|
|
91cc79b19f | ||
|
|
df5fb69839 | ||
|
|
9b5fd4514e | ||
|
|
b380956554 | ||
|
|
1de10e927d | ||
|
|
b01519fd54 | ||
|
|
65ef069acc | ||
|
|
c1fcc1f238 | ||
|
|
8f2482ac06 | ||
|
|
c99099ea1c |
@@ -33,7 +33,7 @@ jobs:
|
||||
|
||||
Lucide **does not accept** brand logos, and we do not plan to add them in the future. This is due to a combination of **legal restrictions**, **design consistency concerns**, and **practical maintenance reasons**.
|
||||
|
||||
[Click here to read our official statement about brand logos in Lucide.](./BRAND_LOGOS_STATEMENT.md)
|
||||
[Click here to read our official statement about brand logos in Lucide.](https://github.com/lucide-icons/lucide/blob/main/BRAND_LOGOS_STATEMENT.md)
|
||||
|
||||
You can [search for similar issues.](https://github.com/lucide-icons/lucide/issues?q=is%3Aissue+${VALUE})
|
||||
|
||||
|
||||
@@ -20,9 +20,6 @@ permissions:
|
||||
id-token: write # Required for OIDC
|
||||
contents: write
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
|
||||
jobs:
|
||||
prepare:
|
||||
if: github.repository == 'lucide-icons/lucide' && contains('["ericfennis", "karsa-mistmere", "jguddas"]', github.actor)
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
name: Weekly Repo Report
|
||||
on:
|
||||
workflow_dispatch:
|
||||
# Run this workflow every Monday at 07:00 UTC
|
||||
schedule:
|
||||
- cron: '0 7 * * 1'
|
||||
permissions:
|
||||
contents: read
|
||||
jobs:
|
||||
weekly-summary:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Set up Node.js environment
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 24
|
||||
|
||||
- name: Install Copilot CLI
|
||||
run: npm install -g @github/copilot
|
||||
|
||||
- name: Run the prompt
|
||||
env:
|
||||
COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
|
||||
run: |
|
||||
copilot -p "${{ vars.REPO_REPORT_PROMPT }} Write the details to summary.md" --allow-tool='shell(git:*)' --allow-tool=write --no-ask-user
|
||||
cat summary.md >> "$GITHUB_STEP_SUMMARY"
|
||||
|
||||
- name: Post report to Discord (private channel)
|
||||
env:
|
||||
DISCORD_WEBHOOK_URL: ${{ secrets.LUCIDE_DISCORD_WEBHOOK }}
|
||||
run: |
|
||||
jq -Rs '{
|
||||
embeds: [{
|
||||
title: "📊 Weekly Repo Report",
|
||||
description: (.[0:4096]),
|
||||
color: 5814783
|
||||
}]
|
||||
}' summary.md > payload.json
|
||||
curl -sS --fail -X POST \
|
||||
-H "Content-Type: application/json" \
|
||||
-d @payload.json \
|
||||
"$DISCORD_WEBHOOK_URL"
|
||||
@@ -101,6 +101,7 @@ export default defineConfig({
|
||||
},
|
||||
{ text: 'Packages', link: '/packages' },
|
||||
{ text: 'Showcase', link: '/showcase' },
|
||||
{ text: 'Merch', link: 'https://merch.lucide.dev/' },
|
||||
],
|
||||
sidebar,
|
||||
socialLinks: [
|
||||
|
||||
@@ -209,5 +209,24 @@
|
||||
],
|
||||
"source": "https://github.com/shx08/strapi-lucide-icons",
|
||||
"documentation": "https://github.com/shx08/strapi-lucide-icons/blob/main/README.md"
|
||||
},
|
||||
{
|
||||
"name": "lucide-lit",
|
||||
"description": "Implementation of Lucide icons as Lit web components.",
|
||||
"icon": "/framework-logos/lit.svg",
|
||||
"shields": [
|
||||
{
|
||||
"alt": "Latest Stable Version",
|
||||
"src": "https://img.shields.io/npm/v/@gyeonghokim/lucide-lit",
|
||||
"href": "https://www.npmjs.com/package/@gyeonghokim/lucide-lit"
|
||||
},
|
||||
{
|
||||
"alt": "Total Downloads",
|
||||
"src": "https://img.shields.io/npm/dw/@gyeonghokim/lucide-lit",
|
||||
"href": "https://www.npmjs.com/package/@gyeonghokim/lucide-lit"
|
||||
}
|
||||
],
|
||||
"source": "https://github.com/GyeongHoKim/lucide-lit",
|
||||
"documentation": "https://github.com/GyeongHoKim/lucide-lit/blob/main/README.md"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -24,13 +24,6 @@ const getHeadConfig = ({
|
||||
defer: '',
|
||||
},
|
||||
],
|
||||
[
|
||||
'script',
|
||||
{
|
||||
src: 'https://media.bitterbrains.com/main.js?from=LUCIDE&type=top',
|
||||
async: 'true',
|
||||
},
|
||||
],
|
||||
[
|
||||
'meta',
|
||||
{
|
||||
|
||||
@@ -72,6 +72,11 @@ export const reactNativeSidebar = [
|
||||
link: '/guide/react-native/advanced/combining-icons',
|
||||
desc: 'Combine multiple icons into one',
|
||||
},
|
||||
{
|
||||
text: 'Optimizations',
|
||||
link: '/guide/react-native/advanced/optimizations',
|
||||
desc: 'Optimizing your app for performance',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
@@ -11,6 +11,14 @@ const { isDark } = useData();
|
||||
|
||||
const emit = defineEmits(['update:modelValue']);
|
||||
|
||||
function limitHexInput(val: string) {
|
||||
if (val.startsWith('#')) {
|
||||
return val.slice(0, 9);
|
||||
}
|
||||
|
||||
return val.slice(0, 8);
|
||||
}
|
||||
|
||||
const value = computed({
|
||||
get: () => {
|
||||
if (props.modelValue == null || props.modelValue === 'currentColor') {
|
||||
@@ -19,7 +27,7 @@ const value = computed({
|
||||
|
||||
return props.modelValue;
|
||||
},
|
||||
set: (val) => emit('update:modelValue', val),
|
||||
set: (val) => emit('update:modelValue', limitHexInput(val)),
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -41,6 +49,7 @@ const value = computed({
|
||||
class="color-input-text"
|
||||
aria-label="Color picker input"
|
||||
v-model="value"
|
||||
maxlength="9"
|
||||
placeholder="[default]"
|
||||
/>
|
||||
</div>
|
||||
@@ -91,6 +100,7 @@ const value = computed({
|
||||
background: transparent;
|
||||
color: var(--vp-c-text-1);
|
||||
font-size: 13px;
|
||||
font-family: var(--vp-font-family-mono);
|
||||
text-align: left;
|
||||
border-radius: 8px;
|
||||
cursor: text;
|
||||
|
||||
@@ -1,90 +0,0 @@
|
||||
<script setup lang="ts">
|
||||
import { useRouter } from 'vitepress';
|
||||
import { computed } from 'vue';
|
||||
|
||||
const router = useRouter();
|
||||
|
||||
const frameworks = [
|
||||
{
|
||||
ariaLabel: 'Get JavaScript certificates from certificates.dev',
|
||||
image: '/certificates-dev/js-certificates-dev.jpg',
|
||||
href: 'https://certificates.dev/javascript?friend=LUCIDE',
|
||||
routes: [
|
||||
'/guide/lucide/',
|
||||
'/guide/svelte/',
|
||||
'/guide/solid/',
|
||||
'/guide/astro/',
|
||||
'/guide/static/'
|
||||
],
|
||||
},
|
||||
{
|
||||
ariaLabel: 'Get React certificates from certificates.dev',
|
||||
image: '/certificates-dev/react-certificates-dev.jpg',
|
||||
href: 'https://certificates.dev/react?friend=LUCIDE',
|
||||
routes: [
|
||||
'/guide/react/',
|
||||
'/guide/react-native/',
|
||||
'/guide/preact/',
|
||||
],
|
||||
},
|
||||
{
|
||||
ariaLabel: 'Get Vue certificates from certificates.dev',
|
||||
href: 'https://certificates.dev/vuejs?friend=LUCIDE',
|
||||
image: '/certificates-dev/vue-certificates-dev.jpg',
|
||||
routes: [
|
||||
'/guide/vue/',
|
||||
],
|
||||
},
|
||||
{
|
||||
ariaLabel: 'Get Angular certificates from certificates.dev',
|
||||
href: 'https://certificates.dev/angular?friend=LUCIDE',
|
||||
image: '/certificates-dev/angular-certificates-dev.jpg',
|
||||
routes: [
|
||||
'/guide/angular/',
|
||||
],
|
||||
}
|
||||
];
|
||||
|
||||
const selected = computed(() => {
|
||||
const current = frameworks.find(({ routes }) => {
|
||||
return routes.some(route => router.route.path.startsWith(route));
|
||||
});
|
||||
|
||||
return current || frameworks[0];
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<a class="certificates-link" :href="selected.href" :aria-label="selected.ariaLabel" target="_blank" rel="noopener noreferrer">
|
||||
<img :src="selected.image" :alt="selected.ariaLabel" />
|
||||
</a>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.certificates-link {
|
||||
/* padding: 20px; */
|
||||
border-radius: 12px;
|
||||
min-height: 100px;
|
||||
text-align: center;
|
||||
line-height: 18px;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
background-color: var(--vp-carbon-ads-bg-color);
|
||||
margin-bottom: 20px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.certificates-link img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
max-width: 100%;
|
||||
border-radius: 6px;
|
||||
transition: transform 0.3s ease, opacity 0.3s ease;
|
||||
}
|
||||
|
||||
.certificates-link:hover img {
|
||||
transform: scale(1.05);
|
||||
opacity: 0.9;
|
||||
|
||||
}
|
||||
</style>
|
||||
@@ -13,23 +13,21 @@ const { go } = useRouter()
|
||||
<HomeSectionTitle>Available For:</HomeSectionTitle>
|
||||
<div class="packages-list">
|
||||
<a
|
||||
v-for="{ name, logo, logoDark } in data.packages"
|
||||
:href="`/guide/packages/${name}`"
|
||||
v-for="{ name, label, path, logo, logoDark } in data.packages"
|
||||
:href="path"
|
||||
class="package-logo"
|
||||
:aria-label="`Read more about: ${name} package`"
|
||||
@click.prevent="go(`/guide/packages/${name}`)"
|
||||
@click.prevent="go(path)"
|
||||
>
|
||||
<img
|
||||
:src="logo"
|
||||
:class="{ light: logoDark, 'image-logo': true }"
|
||||
:alt="`${name} logo`"
|
||||
:alt="label"
|
||||
loading="lazy"
|
||||
/>
|
||||
|
||||
<img
|
||||
v-if="logoDark"
|
||||
:src="logoDark"
|
||||
:alt="`${name} logo`"
|
||||
:alt="label"
|
||||
class="image-logo dark"
|
||||
loading="lazy"
|
||||
/>
|
||||
|
||||
@@ -3,6 +3,7 @@ import type { IconEntity } from '../../types';
|
||||
import { computed, ref } from 'vue';
|
||||
import createLucideIcon from '@lucide/vue/src/createLucideIcon';
|
||||
import { useIconStyleContext } from '../../composables/useIconStyle';
|
||||
import { squarePen } from '../../../data/iconNodes';
|
||||
|
||||
const props = defineProps<{
|
||||
name: IconEntity['name'];
|
||||
@@ -19,6 +20,31 @@ const iconComponent = computed(() => {
|
||||
if (!props.name || !props.iconNode) return null;
|
||||
return createLucideIcon(props.name, props.iconNode);
|
||||
});
|
||||
|
||||
const SquarePenIcon = createLucideIcon('SquarePen', squarePen);
|
||||
|
||||
const innerSvg = computed(() => {
|
||||
if (!props.iconNode) return '';
|
||||
|
||||
const string = props.iconNode
|
||||
.map(([tag, attrs]) => {
|
||||
const attributes = Object.entries(attrs)
|
||||
.map(([key, value]) => `${key}="${value}"`)
|
||||
.join(' ');
|
||||
return `<${tag} ${attributes}/>`;
|
||||
})
|
||||
.join('');
|
||||
|
||||
return string
|
||||
.replace(/>[\r\n ]+</g, '><')
|
||||
.replace(/(<.*?>)|\s+/g, (m, $1) => $1 || ' ')
|
||||
.trim();
|
||||
});
|
||||
|
||||
const base64InnerSvg = computed(() => {
|
||||
if (typeof window === 'undefined') return '';
|
||||
return btoa(innerSvg.value);
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -57,6 +83,16 @@ const iconComponent = computed(() => {
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
||||
<a
|
||||
:href="`https://studio.lucide.dev/edit?value=${encodeURIComponent(base64InnerSvg)}&name=${name}`"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="studio-button"
|
||||
title="Open in Lucide Studio"
|
||||
aria-label="Open in Lucide Studio"
|
||||
>
|
||||
<SquarePenIcon :size="14" />
|
||||
</a>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -75,6 +111,8 @@ const iconComponent = computed(() => {
|
||||
position: relative;
|
||||
background: var(--vp-c-bg-alt);
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.icon-container > :deep(svg:not(.icon-grid)) {
|
||||
width: 100%;
|
||||
@@ -85,6 +123,34 @@ const iconComponent = computed(() => {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.studio-button {
|
||||
position: absolute;
|
||||
bottom: 8px;
|
||||
right: 8px;
|
||||
background: var(--vp-c-bg);
|
||||
border: 1px solid var(--vp-c-divider);
|
||||
border-radius: 6px;
|
||||
padding: 5px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: var(--vp-c-text-2);
|
||||
opacity: 0;
|
||||
transition: opacity 0.2s, color 0.2s, background-color 0.2s;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.icon-container:hover .studio-button,
|
||||
.studio-button:focus-visible {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.studio-button:hover,
|
||||
.studio-button:focus-visible {
|
||||
background: var(--vp-c-bg-soft);
|
||||
color: var(--vp-c-text-1);
|
||||
}
|
||||
|
||||
.icon-component.customizable {
|
||||
will-change: width, height, stroke-width, stroke;
|
||||
/* color: var(--customize-color, currentColor);
|
||||
|
||||
@@ -44,8 +44,12 @@ function setActiveIconName(name: string) {
|
||||
activeIconName.value = name;
|
||||
}
|
||||
|
||||
const { execute: fetchTags, data: tags } = useFetchTags();
|
||||
const { execute: fetchCategories, data: categoriesMap } = useFetchCategories();
|
||||
const { execute: fetchTags, data: tags, isFetching: isFetchingTags } = useFetchTags();
|
||||
const {
|
||||
execute: fetchCategories,
|
||||
data: categoriesMap,
|
||||
isFetching: isFetchingCategories,
|
||||
} = useFetchCategories();
|
||||
|
||||
const overviewEl = ref<HTMLElement | null>(null);
|
||||
const { width: containerWidth } = useElementSize(overviewEl);
|
||||
@@ -117,6 +121,9 @@ const categoriesList = computed(() => {
|
||||
}, []);
|
||||
});
|
||||
const searchPlaceholder = useSearchPlaceholder(searchQuery, searchResults);
|
||||
const isSearchMetadataLoading = computed(
|
||||
() => searchQuery.value.length > 0 && (tags.value == null || categoriesMap.value == null),
|
||||
);
|
||||
|
||||
const { list, containerProps, wrapperProps, scrollTo } = useVirtualList(categoriesList, {
|
||||
itemHeight: ICON_SIZE + ICON_GRID_GAP,
|
||||
@@ -135,15 +142,21 @@ onMounted(() => {
|
||||
useEventListener(window, 'scroll', containerProps.onScroll);
|
||||
});
|
||||
|
||||
function onFocusSearchInput() {
|
||||
if (tags.value == null) {
|
||||
fetchTags();
|
||||
function loadSearchMetadata() {
|
||||
if (tags.value == null && !isFetchingTags.value) {
|
||||
void fetchTags();
|
||||
}
|
||||
if (categoriesMap.value == null) {
|
||||
fetchCategories();
|
||||
if (categoriesMap.value == null && !isFetchingCategories.value) {
|
||||
void fetchCategories();
|
||||
}
|
||||
}
|
||||
|
||||
watch(searchQuery, (searchString) => {
|
||||
if (searchString !== '') {
|
||||
loadSearchMetadata();
|
||||
}
|
||||
});
|
||||
|
||||
const NoResults = defineAsyncComponent(() => import('./NoResults.vue'));
|
||||
const IconDetailOverlay = defineAsyncComponent(() => import('./IconDetailOverlay.vue'));
|
||||
|
||||
@@ -178,11 +191,11 @@ function handleCloseDrawer() {
|
||||
:shortcut="kbdSearchShortcut"
|
||||
class="input-wrapper"
|
||||
ref="searchInput"
|
||||
@focus="onFocusSearchInput"
|
||||
@focus="loadSearchMetadata"
|
||||
/>
|
||||
</StickyBar>
|
||||
<NoResults
|
||||
v-if="searchPlaceholder.isNoResults"
|
||||
v-if="searchPlaceholder.isNoResults && !isSearchMetadataLoading"
|
||||
:searchQuery="searchPlaceholder.query"
|
||||
:isBrandSearch="searchPlaceholder.isBrand"
|
||||
@clear="searchQuery = ''"
|
||||
|
||||
@@ -52,8 +52,12 @@ const props = defineProps<{
|
||||
const activeIconName = ref(null);
|
||||
const selectedSort = ref(SORTING[0])
|
||||
|
||||
const { execute: fetchTags, data: tags } = useFetchTags();
|
||||
const { execute: fetchCategories, data: categories } = useFetchCategories();
|
||||
const { execute: fetchTags, data: tags, isFetching: isFetchingTags } = useFetchTags();
|
||||
const {
|
||||
execute: fetchCategories,
|
||||
data: categories,
|
||||
isFetching: isFetchingCategories,
|
||||
} = useFetchCategories();
|
||||
|
||||
const overviewEl = ref<HTMLElement | null>(null);
|
||||
const { width: containerWidth } = useElementSize(overviewEl);
|
||||
@@ -110,6 +114,9 @@ const searchResults = useSearch(searchQueryDebounced, mappedIcons, [
|
||||
]);
|
||||
|
||||
const searchPlaceholder = useSearchPlaceholder(searchQuery, searchResults);
|
||||
const isSearchMetadataLoading = computed(
|
||||
() => searchQuery.value.length > 0 && (tags.value == null || categories.value == null),
|
||||
);
|
||||
|
||||
const chunkedIcons = computed(() => {
|
||||
return chunkArray(searchResults.value, columnSize.value);
|
||||
@@ -135,15 +142,21 @@ function setActiveIconName(name: string) {
|
||||
activeIconName.value = name;
|
||||
}
|
||||
|
||||
function onFocusSearchInput() {
|
||||
if (tags.value == null) {
|
||||
fetchTags();
|
||||
function loadSearchMetadata() {
|
||||
if (tags.value == null && !isFetchingTags.value) {
|
||||
void fetchTags();
|
||||
}
|
||||
if (categories.value == null) {
|
||||
fetchCategories();
|
||||
if (categories.value == null && !isFetchingCategories.value) {
|
||||
void fetchCategories();
|
||||
}
|
||||
}
|
||||
|
||||
watch(searchQuery, (searchString) => {
|
||||
if (searchString !== '') {
|
||||
loadSearchMetadata();
|
||||
}
|
||||
});
|
||||
|
||||
const NoResults = defineAsyncComponent(() => import('./NoResults.vue'));
|
||||
|
||||
const IconDetailOverlay = defineAsyncComponent(() => import('./IconDetailOverlay.vue'));
|
||||
@@ -179,7 +192,7 @@ function handleCloseDrawer() {
|
||||
ref="searchInput"
|
||||
:shortcut="kbdSearchShortcut"
|
||||
class="input-wrapper"
|
||||
@focus="onFocusSearchInput"
|
||||
@focus="loadSearchMetadata"
|
||||
/>
|
||||
|
||||
<Select
|
||||
@@ -197,7 +210,7 @@ function handleCloseDrawer() {
|
||||
</Select>
|
||||
</StickyBar>
|
||||
<NoResults
|
||||
v-if="searchPlaceholder.isNoResults"
|
||||
v-if="searchPlaceholder.isNoResults && !isSearchMetadataLoading"
|
||||
:searchQuery="searchPlaceholder.query"
|
||||
:isBrandSearch="searchPlaceholder.isBrand"
|
||||
@clear="searchQuery = ''"
|
||||
|
||||
@@ -73,13 +73,11 @@ const customizingActive = computed(() => {
|
||||
id="icon-color"
|
||||
label="Color"
|
||||
>
|
||||
<template #display>
|
||||
<ColorPicker
|
||||
v-model="color"
|
||||
id="icon-color"
|
||||
class="color-picker"
|
||||
/>
|
||||
</template>
|
||||
<ColorPicker
|
||||
v-model="color"
|
||||
id="icon-color"
|
||||
class="color-picker"
|
||||
/>
|
||||
</InputField>
|
||||
|
||||
<InputField
|
||||
@@ -161,6 +159,6 @@ const customizingActive = computed(() => {
|
||||
}
|
||||
|
||||
.color-picker {
|
||||
margin-left: auto;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -12,7 +12,6 @@ import { CATEGORY_VIEW_CONTEXT, categoryViewContext } from './composables/useCat
|
||||
import { EXTERNAL_LIBS_CONTEXT, externalLibContext } from './composables/useExternalLibs';
|
||||
import FrameworkSelect from './components/guide/FrameworkSelect.vue';
|
||||
import SnackPlayer from './components/editors/SnackPlayer.vue';
|
||||
import CertificatesLink from './components/guide/CertificatesLink.vue';
|
||||
|
||||
const theme: Partial<Theme> = {
|
||||
extends: DefaultTheme,
|
||||
@@ -23,7 +22,6 @@ const theme: Partial<Theme> = {
|
||||
'sidebar-nav-after': () => h(IconsSidebarNavAfter),
|
||||
'home-hero-image': () => h(HomeHeroIconsCard),
|
||||
'home-hero-actions-after': () => h(HomeHeroAfter),
|
||||
'aside-ads-before': () => h(CertificatesLink),
|
||||
// Keep this here for now, we might want to add more things to the top bar in the future
|
||||
// 'layout-top': () => h(LayoutTop),
|
||||
});
|
||||
|
||||
@@ -67,6 +67,10 @@
|
||||
animation: .3s transition 0s ease;
|
||||
} */
|
||||
|
||||
html {
|
||||
scrollbar-gutter: stable;
|
||||
}
|
||||
|
||||
.VPHome {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
@@ -148,14 +152,6 @@
|
||||
.VPHomeHero .container {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
html.has-bb-banner {
|
||||
--vp-layout-top-height: 72px;
|
||||
}
|
||||
|
||||
html.has-bb-banner {
|
||||
--Dark-Background: #161618;
|
||||
}
|
||||
}
|
||||
|
||||
.VPNavBarHamburger .container > span {
|
||||
@@ -167,12 +163,6 @@
|
||||
max-width: 480px;
|
||||
}
|
||||
|
||||
html:not(.has-bb-banner) #bb-banner {
|
||||
display: none !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
.VPSidebar {
|
||||
/* Hide Scrollbar */
|
||||
-ms-overflow-style: none;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { PageData } from 'vitepress';
|
||||
import { type PageData } from 'vitepress';
|
||||
import getStructuredData from './getStructuredData';
|
||||
import { createGeneralOGImage, createIconOGImage } from './createOGImage';
|
||||
|
||||
|
||||
+64
-28
@@ -12,19 +12,23 @@ Implementation of the Lucide icon library for web applications.
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm add lucide@next
|
||||
pnpm add lucide
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
yarn add lucide@next
|
||||
yarn add lucide
|
||||
```
|
||||
|
||||
```sh [npm]
|
||||
npm install lucide@next
|
||||
npm install lucide
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide@next
|
||||
bun add lucide
|
||||
```
|
||||
|
||||
```sh [deno]
|
||||
deno add lucide
|
||||
```
|
||||
|
||||
:::
|
||||
@@ -38,19 +42,23 @@ Implementation of the Lucide icon library for React applications.
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm add lucide-react@next
|
||||
pnpm add lucide-react
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
yarn add lucide-react@next
|
||||
yarn add lucide-react
|
||||
```
|
||||
|
||||
```sh [npm]
|
||||
npm install lucide-react@next
|
||||
npm install lucide-react
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-react@next
|
||||
bun add lucide-react
|
||||
```
|
||||
|
||||
```sh [deno]
|
||||
deno add lucide-react
|
||||
```
|
||||
|
||||
:::
|
||||
@@ -80,6 +88,10 @@ npm install @lucide/vue
|
||||
bun add @lucide/vue
|
||||
```
|
||||
|
||||
```sh [deno]
|
||||
deno add @lucide/vue
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
For more details, see the [documentation](./vue/index.md).
|
||||
@@ -91,19 +103,23 @@ Implementation of the Lucide icon library for Svelte applications.
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm add @lucide/svelte@next
|
||||
pnpm add @lucide/svelte
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
yarn add @lucide/svelte@next
|
||||
yarn add @lucide/svelte
|
||||
```
|
||||
|
||||
```sh [npm]
|
||||
npm install @lucide/svelte@next
|
||||
npm install @lucide/svelte
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add @lucide/svelte@next
|
||||
bun add @lucide/svelte
|
||||
```
|
||||
|
||||
```sh [deno]
|
||||
deno add @lucide/svelte
|
||||
```
|
||||
:::
|
||||
> `@lucide/svelte` is only for Svelte 5, for Svelte 4 use the `lucide-svelte` package.
|
||||
@@ -117,19 +133,23 @@ Implementation of the Lucide icon library for Solid applications.
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm add lucide-solid@next
|
||||
pnpm add lucide-solid
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
yarn add lucide-solid@next
|
||||
yarn add lucide-solid
|
||||
```
|
||||
|
||||
```sh [npm]
|
||||
npm install lucide-solid@next
|
||||
npm install lucide-solid
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-solid@next
|
||||
bun add lucide-solid
|
||||
```
|
||||
|
||||
```sh [deno]
|
||||
deno add lucide-solid
|
||||
```
|
||||
|
||||
:::
|
||||
@@ -158,6 +178,10 @@ npm install @lucide/angular
|
||||
bun add @lucide/angular
|
||||
```
|
||||
|
||||
```sh [deno]
|
||||
deno add @lucide/angular
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
For more details, see the [documentation](./angular/index.md).
|
||||
@@ -169,19 +193,23 @@ Implementation of the Lucide icon library for preact applications.
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm add lucide-preact@next
|
||||
pnpm add lucide-preact
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
yarn add lucide-preact@next
|
||||
yarn add lucide-preact
|
||||
```
|
||||
|
||||
```sh [npm]
|
||||
npm install lucide-preact@next
|
||||
npm install lucide-preact
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-preact@next
|
||||
bun add lucide-preact
|
||||
```
|
||||
|
||||
```sh [deno]
|
||||
deno add lucide-preact
|
||||
```
|
||||
|
||||
|
||||
@@ -196,19 +224,23 @@ Implementation of the Lucide icon library for Astro applications.
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm add @lucide/astro@next
|
||||
pnpm add @lucide/astro
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
yarn add @lucide/astro@next
|
||||
yarn add @lucide/astro
|
||||
```
|
||||
|
||||
```sh [npm]
|
||||
npm install @lucide/astro@next
|
||||
npm install @lucide/astro
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add @lucide/astro@next
|
||||
bun add @lucide/astro
|
||||
```
|
||||
|
||||
```sh [deno]
|
||||
deno add @lucide/astro
|
||||
```
|
||||
|
||||
:::
|
||||
@@ -222,19 +254,23 @@ Implementation of the Lucide icon library for multiple usages that like to use:
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm add lucide-static@next
|
||||
pnpm add lucide-static
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
yarn add lucide-static@next
|
||||
yarn add lucide-static
|
||||
```
|
||||
|
||||
```sh [npm]
|
||||
npm install lucide-static@next
|
||||
npm install lucide-static
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-static@next
|
||||
bun add lucide-static
|
||||
```
|
||||
|
||||
```sh [deno]
|
||||
deno add lucide-static
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
---
|
||||
title: Optimizations - React Native
|
||||
description: Learn how to optimize the bundle size of your React Native and Expo web exports by tree-shaking Lucide icons.
|
||||
---
|
||||
|
||||
# Optimizations
|
||||
|
||||
By default you import icons from the `lucide-react-native` entry point:
|
||||
|
||||
```jsx
|
||||
import { Camera } from 'lucide-react-native';
|
||||
```
|
||||
|
||||
This is convenient, but it relies on the bundler to _tree-shake_ the entry point (a "barrel" file that re-exports every icon) so that only the icons you actually use end up in your bundle.
|
||||
|
||||
On native platforms this is usually fine. On **web exports** it can be a problem, because the Metro bundler is currently not very good at tree-shaking barrel imports and may include **all** icons in your final bundle.
|
||||
|
||||
## The Metro tree-shaking limitation
|
||||
|
||||
When you build for web with Expo (`expo export --platform web`), Metro is used to bundle your JavaScript. Metro bundles modules on-demand and, by default, does not remove unused exports from a barrel file.
|
||||
|
||||
This means an import like the one below can pull in the entire icon set, even though only a single icon is rendered:
|
||||
|
||||
```jsx
|
||||
// May bundle every Lucide icon on web exports
|
||||
import { Camera } from 'lucide-react-native';
|
||||
```
|
||||
|
||||
Expo documents an experimental optimization for [React Native web imports](https://docs.expo.dev/guides/tree-shaking/#react-native-web-imports) and for [removing unused imports and exports](https://docs.expo.dev/guides/tree-shaking/#remove-unused-imports-and-exports). In practice this tree-shaking does **not** currently work reliably for `lucide-react-native` barrel imports, so the unused icons are not removed from web exports.
|
||||
|
||||
## Recommended: import icons individually
|
||||
|
||||
To guarantee that only the icons you use are bundled — regardless of the bundler's tree-shaking capabilities — import each icon directly from its own module:
|
||||
|
||||
```jsx
|
||||
import Camera from 'lucide-react-native/icons/camera';
|
||||
|
||||
// Usage
|
||||
const App = () => {
|
||||
return <Camera />;
|
||||
};
|
||||
|
||||
export default App;
|
||||
```
|
||||
|
||||
Because each icon lives in its own file, the bundler only ever includes the icons you explicitly import. This keeps your web export small without depending on Metro's experimental tree-shaking.
|
||||
|
||||
The icon module name is the [kebab-case](https://developer.mozilla.org/en-US/docs/Glossary/Kebab_case) version of the icon name. For example, the `ArrowRight` icon is imported from `lucide-react-native/icons/arrow-right`:
|
||||
|
||||
```jsx
|
||||
import ArrowRight from 'lucide-react-native/icons/arrow-right';
|
||||
```
|
||||
|
||||
::: tip
|
||||
Individual icon imports work identically on native and web, so you can safely use this style across your whole project to keep bundles as small as possible on every platform.
|
||||
:::
|
||||
+17
-16
@@ -32,31 +32,32 @@
|
||||
"@lucide/shared": "workspace:*",
|
||||
"@rollup/plugin-replace": "^6.0.3",
|
||||
"@types/semver": "^7.7.1",
|
||||
"h3": "^1.15.9",
|
||||
"h3": "^1.15.11",
|
||||
"markdown-it": "^14.3.0",
|
||||
"markdown-it-container": "^4.0.0",
|
||||
"nitropack": "^2.13.4",
|
||||
"rollup-plugin-copy": "^3.5.0",
|
||||
"svg-path-commander": "^2.1.11",
|
||||
"vitepress": "^1.6.4",
|
||||
"vitepress-plugin-group-icons": "^1.6.5",
|
||||
"vitepress-plugin-llms": "^1.11.1",
|
||||
"markdown-it": "^14.2.0",
|
||||
"markdown-it-container": "^4.0.0",
|
||||
"semver": "^7.7.3",
|
||||
"semver": "^7.8.5",
|
||||
"sharp": "^0.34.5",
|
||||
"shiki": "^3.15.0",
|
||||
"shiki": "^3.23.0",
|
||||
"simple-git": "^3.36.0",
|
||||
"sitemap": "^7.1.2",
|
||||
"sitemap": "^7.1.3",
|
||||
"svg-path-commander": "^2.2.1",
|
||||
"svg-pathdata": "^6.0.3",
|
||||
"svgson": "^5.3.1"
|
||||
"svgson": "^5.3.1",
|
||||
"vitepress": "^1.6.4",
|
||||
"vitepress-plugin-group-icons": "^1.7.5",
|
||||
"vitepress-plugin-llms": "^1.13.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@floating-ui/vue": "^1.1.9",
|
||||
"@floating-ui/vue": "^1.1.11",
|
||||
"@headlessui/vue": "^1.7.23",
|
||||
"@lucide/vue": "workspace:*",
|
||||
"@vueuse/components": "^14.0.0",
|
||||
"@vueuse/core": "^14.0.0",
|
||||
"@vueuse/components": "^14.3.0",
|
||||
"@vueuse/core": "^14.3.0",
|
||||
"@vueuse/integrations": "^14.3.0",
|
||||
"element-to-path": "^1.2.1",
|
||||
"fuse.js": "^7.1.0",
|
||||
"fuse.js": "^7.5.0",
|
||||
"jszip": "^3.10.1",
|
||||
"lodash-es": "^4.18.1",
|
||||
"lucide": "workspace:*",
|
||||
@@ -65,6 +66,6 @@
|
||||
"react": "18.2.0",
|
||||
"react-dom": "18.2.0",
|
||||
"sandpack-vue3": "3.1.12",
|
||||
"vue": "^3.5.24"
|
||||
"vue": "^3.5.39"
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 86 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 83 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 88 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 79 KiB |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 200" fill="none">
|
||||
<path fill="#00e8ff" d="M40 120l20-60l90 90l-30 50l-40-40h-20" />
|
||||
<path fill="#283198" d="M80 160 L80 80 L120 40 L 120 120 M0 160 L40 200 L40 120 L20 120" />
|
||||
<path fill="#324fff" d="M40 120v-80l40-40v80M120 200v-80l40-40v80M0 160v-80l40 40" />
|
||||
<path fill="#0ff" d="M40 200v-80l40 40" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 377 B |
@@ -35,9 +35,20 @@ interface AnalyticsResponse {
|
||||
}[];
|
||||
}
|
||||
|
||||
const writeIconPopularity = async (iconVisitCounts: Record<string, number>) => {
|
||||
const writePopularityPromises = Object.entries(iconVisitCounts).map(([iconName, count]) => {
|
||||
const location = path.resolve(iconPopularityDirectory, `${iconName}.json`);
|
||||
return fs.promises.writeFile(location, JSON.stringify({ count }, null, 2), 'utf-8');
|
||||
});
|
||||
|
||||
await Promise.all(writePopularityPromises);
|
||||
console.log('Successfully written icon popularity data for', writePopularityPromises.length, 'icons.');
|
||||
};
|
||||
|
||||
if (process.env.LUCIDE_ANALYTICS_TOKEN === undefined) {
|
||||
console.error('LUCIDE_ANALYTICS_TOKEN environment variable is not set. Please set it to fetch analytics data.');
|
||||
process.exit(1);
|
||||
console.warn('LUCIDE_ANALYTICS_TOKEN environment variable is not set. Writing default icon popularity data.');
|
||||
await writeIconPopularity(defaultIconNamePopularity);
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
try {
|
||||
@@ -85,15 +96,9 @@ try {
|
||||
return acc;
|
||||
}, defaultIconNamePopularity);
|
||||
|
||||
const writePopularityPromises = Object.entries(iconVisitCounts).map(([iconName, count]) => {
|
||||
const location = path.resolve(iconPopularityDirectory, `${iconName}.json`);
|
||||
return fs.promises.writeFile(location, JSON.stringify({ count }, null, 2), 'utf-8');
|
||||
});
|
||||
|
||||
await Promise.all(writePopularityPromises);
|
||||
console.log('Successfully written icon popularity data for', writePopularityPromises.length, 'icons.');
|
||||
await writeIconPopularity(iconVisitCounts);
|
||||
|
||||
} catch (error) {
|
||||
console.error('Error fetching analytics data:', error);
|
||||
await writeIconPopularity(defaultIconNamePopularity);
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -40,7 +40,7 @@
|
||||
}
|
||||
},
|
||||
"dependentRequired": {
|
||||
"deprecated": ["deprecationReason", "toBeRemovedInVersion"],
|
||||
"deprecated": ["deprecationReason"],
|
||||
"deprecationReason": ["deprecated"],
|
||||
"toBeRemovedInVersion": ["deprecated"]
|
||||
}
|
||||
@@ -134,7 +134,7 @@
|
||||
}
|
||||
},
|
||||
"dependentRequired": {
|
||||
"deprecated": ["deprecationReason", "toBeRemovedInVersion"],
|
||||
"deprecated": ["deprecationReason"],
|
||||
"deprecationReason": ["deprecated"],
|
||||
"toBeRemovedInVersion": ["deprecated"]
|
||||
},
|
||||
|
||||
@@ -6,7 +6,9 @@
|
||||
"danielbayley",
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Decreasing the font size in a text editor"
|
||||
],
|
||||
"tags": [
|
||||
"letter",
|
||||
"font size",
|
||||
|
||||
@@ -6,7 +6,9 @@
|
||||
"danielbayley",
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Increasing the font size in a text editor"
|
||||
],
|
||||
"tags": [
|
||||
"letter",
|
||||
"font size",
|
||||
|
||||
@@ -4,7 +4,10 @@
|
||||
"karsa-mistmere",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Representing physical disability or accessibility assistance",
|
||||
"Marking wheelchair-accessible facilities or routes"
|
||||
],
|
||||
"tags": [
|
||||
"disability",
|
||||
"disabled",
|
||||
|
||||
+5
-1
@@ -4,7 +4,11 @@
|
||||
"colebemis",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Representing an activity feed or recent actions",
|
||||
"Showing health metrics such as heart rate or vital signs",
|
||||
"Indicating live system activity or monitoring"
|
||||
],
|
||||
"tags": [
|
||||
"pulse",
|
||||
"action",
|
||||
|
||||
+4
-1
@@ -4,7 +4,10 @@
|
||||
"karsa-mistmere",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Representing air conditioning or ventilation in smart home apps",
|
||||
"Indicating climate control amenities on hotel and booking platforms"
|
||||
],
|
||||
"tags": [
|
||||
"air conditioner",
|
||||
"ac",
|
||||
|
||||
+4
-1
@@ -5,7 +5,10 @@
|
||||
"csandman",
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Streaming or mirroring a screen to an external display",
|
||||
"Casting media to a TV or compatible device"
|
||||
],
|
||||
"tags": [
|
||||
"stream",
|
||||
"cast",
|
||||
|
||||
@@ -6,7 +6,10 @@
|
||||
"jguddas",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Confirming an alarm or scheduled reminder is set",
|
||||
"Marking a timed task as complete"
|
||||
],
|
||||
"tags": [
|
||||
"done",
|
||||
"todo",
|
||||
@@ -23,8 +26,7 @@
|
||||
{
|
||||
"name": "alarm-check",
|
||||
"deprecationReason": "alias.name",
|
||||
"deprecated": true,
|
||||
"toBeRemovedInVersion": "v1.0"
|
||||
"deprecated": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -6,7 +6,9 @@
|
||||
"jguddas",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Removing or deleting an alarm"
|
||||
],
|
||||
"tags": [
|
||||
"remove"
|
||||
],
|
||||
@@ -19,8 +21,7 @@
|
||||
{
|
||||
"name": "alarm-minus",
|
||||
"deprecationReason": "alias.name",
|
||||
"deprecated": true,
|
||||
"toBeRemovedInVersion": "v1.0"
|
||||
"deprecated": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -6,7 +6,9 @@
|
||||
"karsa-mistmere",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Turning off or disabling an alarm"
|
||||
],
|
||||
"tags": [
|
||||
"morning",
|
||||
"turn-off"
|
||||
|
||||
@@ -6,7 +6,9 @@
|
||||
"jguddas",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Adding or creating a new alarm"
|
||||
],
|
||||
"tags": [
|
||||
"add"
|
||||
],
|
||||
@@ -19,8 +21,7 @@
|
||||
{
|
||||
"name": "alarm-plus",
|
||||
"deprecationReason": "alias.name",
|
||||
"deprecated": true,
|
||||
"toBeRemovedInVersion": "v1.0"
|
||||
"deprecated": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -7,7 +7,9 @@
|
||||
"jguddas",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Setting an alarm or wake-up reminder"
|
||||
],
|
||||
"tags": [
|
||||
"morning"
|
||||
],
|
||||
|
||||
@@ -5,7 +5,10 @@
|
||||
"karsa-mistmere",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Representing a smoke or fire detector in smart home apps",
|
||||
"Indicating fire safety equipment or amenities in listings"
|
||||
],
|
||||
"tags": [
|
||||
"fire",
|
||||
"alert",
|
||||
|
||||
+4
-1
@@ -5,7 +5,10 @@
|
||||
"csandman",
|
||||
"mittalyashu"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Representing a photo album or collection",
|
||||
"Indicating a music album"
|
||||
],
|
||||
"tags": [
|
||||
"photo",
|
||||
"book"
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"contributors": [
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Aligning elements to the horizontal center in page builders and design tools"
|
||||
],
|
||||
"tags": [
|
||||
"items",
|
||||
"flex",
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"contributors": [
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Aligning elements to the vertical center in page builders and design tools"
|
||||
],
|
||||
"tags": [
|
||||
"items",
|
||||
"flex",
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"contributors": [
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Aligning elements to the horizontal end in page builders and design tools"
|
||||
],
|
||||
"tags": [
|
||||
"items",
|
||||
"bottom",
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"contributors": [
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Aligning elements to the vertical end in page builders and design tools"
|
||||
],
|
||||
"tags": [
|
||||
"items",
|
||||
"right",
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
"r4lv",
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Distributing elements evenly around their horizontal centers in design tools"
|
||||
],
|
||||
"tags": [
|
||||
"items",
|
||||
"flex",
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
"r4lv",
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Distributing elements by their right edges in design tools"
|
||||
],
|
||||
"tags": [
|
||||
"right",
|
||||
"items",
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
"r4lv",
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Distributing elements by their left edges in design tools"
|
||||
],
|
||||
"tags": [
|
||||
"left",
|
||||
"items",
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"contributors": [
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Justifying elements around the horizontal center in design tools"
|
||||
],
|
||||
"tags": [
|
||||
"center",
|
||||
"items",
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"contributors": [
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Justifying elements to the horizontal end in design tools"
|
||||
],
|
||||
"tags": [
|
||||
"right",
|
||||
"items",
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"contributors": [
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Justifying elements to the horizontal start in design tools"
|
||||
],
|
||||
"tags": [
|
||||
"left",
|
||||
"items",
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"contributors": [
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Distributing elements with equal horizontal space around them in design tools"
|
||||
],
|
||||
"tags": [
|
||||
"center",
|
||||
"items",
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"contributors": [
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Distributing elements with equal horizontal space between them in design tools"
|
||||
],
|
||||
"tags": [
|
||||
"around",
|
||||
"items",
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"contributors": [
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Aligning elements to the horizontal start in page builders and design tools"
|
||||
],
|
||||
"tags": [
|
||||
"top",
|
||||
"items",
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"contributors": [
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Aligning elements to the vertical start in page builders and design tools"
|
||||
],
|
||||
"tags": [
|
||||
"left",
|
||||
"items",
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
"ericfennis",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Distributing elements evenly around the vertical center in design tools"
|
||||
],
|
||||
"tags": [
|
||||
"items",
|
||||
"flex",
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"contributors": [
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Distributing elements toward the vertical end in design tools"
|
||||
],
|
||||
"tags": [
|
||||
"bottom",
|
||||
"items",
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"contributors": [
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Distributing elements toward the vertical start in design tools"
|
||||
],
|
||||
"tags": [
|
||||
"top",
|
||||
"items",
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"contributors": [
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Justifying elements around the vertical center in design tools"
|
||||
],
|
||||
"tags": [
|
||||
"center",
|
||||
"items",
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"contributors": [
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Justifying elements to the vertical end in design tools"
|
||||
],
|
||||
"tags": [
|
||||
"bottom",
|
||||
"items",
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"contributors": [
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Justifying elements to the vertical start in design tools"
|
||||
],
|
||||
"tags": [
|
||||
"top",
|
||||
"items",
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"contributors": [
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Distributing elements with equal vertical space around them in design tools"
|
||||
],
|
||||
"tags": [
|
||||
"center",
|
||||
"items",
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"contributors": [
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Distributing elements with equal vertical space between them in design tools"
|
||||
],
|
||||
"tags": [
|
||||
"center",
|
||||
"items",
|
||||
|
||||
@@ -11,7 +11,10 @@
|
||||
"karsa-mistmere",
|
||||
"danielbayley"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Directing users to nearby emergency services in navigation apps",
|
||||
"Marking emergency contacts or medical transport services"
|
||||
],
|
||||
"tags": [
|
||||
"ambulance",
|
||||
"emergency",
|
||||
|
||||
@@ -5,7 +5,10 @@
|
||||
"karsa-mistmere",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Inserting an ampersand in text editors",
|
||||
"Representing a join or concatenation operator in code"
|
||||
],
|
||||
"tags": [
|
||||
"and",
|
||||
"typography",
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
"danielbayley",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Representing a logical AND operator in code"
|
||||
],
|
||||
"tags": [
|
||||
"and",
|
||||
"operator",
|
||||
|
||||
+6
-1
@@ -3,7 +3,12 @@
|
||||
"contributors": [
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Representing museological or archaeological artefacts",
|
||||
"Indicating pottery or ceramics",
|
||||
"Symbolizing Greek culture or antiquity",
|
||||
"Denoting amphora-aged wines"
|
||||
],
|
||||
"tags": [
|
||||
"pottery",
|
||||
"artifact",
|
||||
|
||||
+4
-1
@@ -6,7 +6,10 @@
|
||||
"ericfennis",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Representing a ship's anchor or maritime context",
|
||||
"Linking to an anchor point or section within a page"
|
||||
],
|
||||
"tags": [
|
||||
"ship"
|
||||
],
|
||||
|
||||
+4
-1
@@ -4,7 +4,10 @@
|
||||
"karsa-mistmere",
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Expressing strong dissatisfaction in feedback or rating scales",
|
||||
"Marking the lowest score on a contentment scale (very unhappy to very happy)"
|
||||
],
|
||||
"tags": [
|
||||
"emoji",
|
||||
"anger",
|
||||
|
||||
+4
-1
@@ -3,7 +3,10 @@
|
||||
"contributors": [
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Expressing mild dissatisfaction in feedback or rating scales",
|
||||
"Marking an unhappy step on a contentment scale (very unhappy to very happy)"
|
||||
],
|
||||
"tags": [
|
||||
"emoji",
|
||||
"nuisance",
|
||||
|
||||
+5
-1
@@ -3,7 +3,11 @@
|
||||
"contributors": [
|
||||
"danielbayley"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Representing signal reception or broadcast",
|
||||
"Indicating a TV antenna or terrestrial reception",
|
||||
"Showing connectivity or frequency tuning"
|
||||
],
|
||||
"tags": [
|
||||
"signal",
|
||||
"connection",
|
||||
|
||||
+3
-1
@@ -4,7 +4,9 @@
|
||||
"karsa-mistmere",
|
||||
"danielbayley"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Representing construction, metalwork, or industrial tools"
|
||||
],
|
||||
"tags": [
|
||||
"metal",
|
||||
"iron",
|
||||
|
||||
+4
-1
@@ -4,7 +4,10 @@
|
||||
"colebemis",
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Representing camera aperture or exposure settings",
|
||||
"Indicating photography or capture features"
|
||||
],
|
||||
"tags": [
|
||||
"camera",
|
||||
"photo",
|
||||
|
||||
@@ -3,7 +3,10 @@
|
||||
"contributors": [
|
||||
"danielbayley"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Representing an application window on macOS",
|
||||
"Indicating a desktop app or pane"
|
||||
],
|
||||
"tags": [
|
||||
"application",
|
||||
"menu bar",
|
||||
|
||||
@@ -4,7 +4,10 @@
|
||||
"danielbayley",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Representing an application window",
|
||||
"Indicating a desktop app or executable"
|
||||
],
|
||||
"tags": [
|
||||
"application",
|
||||
"menu bar",
|
||||
|
||||
+5
-1
@@ -3,7 +3,11 @@
|
||||
"contributors": [
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Representing fruit or healthy eating",
|
||||
"Categorizing produce or groceries",
|
||||
"Symbolizing nutrition or a balanced diet"
|
||||
],
|
||||
"tags": [
|
||||
"fruit",
|
||||
"food",
|
||||
|
||||
@@ -5,7 +5,9 @@
|
||||
"ericfennis",
|
||||
"danielbayley"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Restoring an item from the archive, reversing an archive action"
|
||||
],
|
||||
"tags": [
|
||||
"unarchive",
|
||||
"index",
|
||||
|
||||
@@ -3,7 +3,10 @@
|
||||
"contributors": [
|
||||
"danielbayley"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Removing an item from the archive",
|
||||
"Marking archived mail as junk"
|
||||
],
|
||||
"tags": [
|
||||
"index",
|
||||
"backup",
|
||||
|
||||
+4
-1
@@ -6,7 +6,10 @@
|
||||
"karsa-mistmere",
|
||||
"danielbayley"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Archiving items or moving them to storage",
|
||||
"Representing backups or stored records"
|
||||
],
|
||||
"tags": [
|
||||
"index",
|
||||
"backup",
|
||||
|
||||
+4
-1
@@ -4,7 +4,10 @@
|
||||
"karsa-mistmere",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Indicating a lounge or seating area in hotel and booking apps",
|
||||
"Representing living room furniture in smart home applications"
|
||||
],
|
||||
"tags": [
|
||||
"sofa",
|
||||
"furniture",
|
||||
|
||||
@@ -6,7 +6,10 @@
|
||||
"jamiemlaw",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Moving down with emphasis, e.g. as a game control",
|
||||
"Indicating a download or a jump to the bottom"
|
||||
],
|
||||
"tags": [
|
||||
"backwards",
|
||||
"reverse",
|
||||
|
||||
@@ -8,7 +8,9 @@
|
||||
"jamiemlaw",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Indicating a strong downward direction, e.g. as a game control"
|
||||
],
|
||||
"tags": [
|
||||
"backwards",
|
||||
"reverse",
|
||||
|
||||
@@ -6,7 +6,9 @@
|
||||
"jamiemlaw",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Indicating a strong leftward direction or turn, e.g. as a game control"
|
||||
],
|
||||
"tags": [
|
||||
"previous",
|
||||
"back",
|
||||
|
||||
@@ -9,7 +9,9 @@
|
||||
"jamiemlaw",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Indicating a strong leftward direction, e.g. as a game control"
|
||||
],
|
||||
"tags": [
|
||||
"previous",
|
||||
"back",
|
||||
|
||||
@@ -6,7 +6,9 @@
|
||||
"jamiemlaw",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Indicating a strong rightward direction or turn, e.g. as a game control"
|
||||
],
|
||||
"tags": [
|
||||
"next",
|
||||
"forward",
|
||||
|
||||
@@ -9,7 +9,9 @@
|
||||
"jamiemlaw",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Indicating a strong rightward direction, e.g. as a game control"
|
||||
],
|
||||
"tags": [
|
||||
"next",
|
||||
"forward",
|
||||
|
||||
@@ -6,7 +6,10 @@
|
||||
"jamiemlaw",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Representing the Caps Lock key on a keyboard",
|
||||
"Indicating a speed boost or strong upward direction in games"
|
||||
],
|
||||
"tags": [
|
||||
"caps lock",
|
||||
"capitals",
|
||||
|
||||
@@ -8,7 +8,10 @@
|
||||
"jamiemlaw",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Representing the Shift key on a keyboard",
|
||||
"Indicating a strong upward direction in games"
|
||||
],
|
||||
"tags": [
|
||||
"shift",
|
||||
"keyboard",
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
"karsa-mistmere",
|
||||
"danielbayley"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Sorting numerical values in ascending order"
|
||||
],
|
||||
"tags": [
|
||||
"filter",
|
||||
"sort",
|
||||
@@ -25,8 +27,8 @@
|
||||
{
|
||||
"name": "arrow-down-01",
|
||||
"deprecationReason": "alias.name",
|
||||
"deprecated": true,
|
||||
"toBeRemovedInVersion": "v1.0"
|
||||
}
|
||||
"deprecated": true
|
||||
},
|
||||
"arrow-down-01"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
"karsa-mistmere",
|
||||
"danielbayley"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Sorting numerical values in descending order"
|
||||
],
|
||||
"tags": [
|
||||
"filter",
|
||||
"sort",
|
||||
@@ -25,8 +27,8 @@
|
||||
{
|
||||
"name": "arrow-down-10",
|
||||
"deprecationReason": "alias.name",
|
||||
"deprecated": true,
|
||||
"toBeRemovedInVersion": "v1.0"
|
||||
}
|
||||
"deprecated": true
|
||||
},
|
||||
"arrow-down-10"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
"karsa-mistmere",
|
||||
"danielbayley"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Sorting items alphabetically from A to Z"
|
||||
],
|
||||
"tags": [
|
||||
"filter",
|
||||
"sort",
|
||||
@@ -25,8 +27,8 @@
|
||||
{
|
||||
"name": "arrow-down-az",
|
||||
"deprecationReason": "alias.name",
|
||||
"deprecated": true,
|
||||
"toBeRemovedInVersion": "v1.0"
|
||||
}
|
||||
"deprecated": true
|
||||
},
|
||||
"arrow-down-az"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -4,7 +4,10 @@
|
||||
"danielbayley",
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Downloading or moving content downward from a boundary",
|
||||
"Expanding a section downward"
|
||||
],
|
||||
"tags": [
|
||||
"backwards",
|
||||
"reverse",
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
"colebemis",
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Indicating a downward-left diagonal direction"
|
||||
],
|
||||
"tags": [
|
||||
"direction",
|
||||
"south-west",
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"contributors": [
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Sorting items from narrow to wide, e.g. smallest to largest"
|
||||
],
|
||||
"tags": [
|
||||
"filter",
|
||||
"sort",
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
"colebemis",
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Indicating a downward-right diagonal direction"
|
||||
],
|
||||
"tags": [
|
||||
"direction",
|
||||
"south-east",
|
||||
|
||||
@@ -3,7 +3,10 @@
|
||||
"contributors": [
|
||||
"danielbayley"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Moving down to a specific point or waypoint",
|
||||
"Indicating a target or destination below"
|
||||
],
|
||||
"tags": [
|
||||
"direction",
|
||||
"south",
|
||||
|
||||
@@ -4,7 +4,10 @@
|
||||
"danielbayley",
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Downloading or saving content to a boundary",
|
||||
"Representing a git pull or collapsing a section"
|
||||
],
|
||||
"tags": [
|
||||
"behind",
|
||||
"direction",
|
||||
|
||||
@@ -3,7 +3,10 @@
|
||||
"contributors": [
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Indicating two-way data transfer or network traffic",
|
||||
"Sorting or reordering items"
|
||||
],
|
||||
"tags": [
|
||||
"bidirectional",
|
||||
"two-way",
|
||||
|
||||
@@ -5,7 +5,9 @@
|
||||
"csandman",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Sorting items from wide to narrow, e.g. largest to smallest"
|
||||
],
|
||||
"tags": [
|
||||
"filter",
|
||||
"sort",
|
||||
@@ -25,8 +27,7 @@
|
||||
{
|
||||
"name": "sort-desc",
|
||||
"deprecationReason": "alias.name",
|
||||
"deprecated": true,
|
||||
"toBeRemovedInVersion": "v1.0"
|
||||
"deprecated": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
"karsa-mistmere",
|
||||
"danielbayley"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Sorting items alphabetically from Z to A"
|
||||
],
|
||||
"tags": [
|
||||
"filter",
|
||||
"sort",
|
||||
@@ -26,8 +28,8 @@
|
||||
{
|
||||
"name": "arrow-down-za",
|
||||
"deprecationReason": "alias.name",
|
||||
"deprecated": true,
|
||||
"toBeRemovedInVersion": "v1.0"
|
||||
}
|
||||
"deprecated": true
|
||||
},
|
||||
"arrow-down-za"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
"colebemis",
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [],
|
||||
"use-cases": [
|
||||
"Indicating a downward direction or movement"
|
||||
],
|
||||
"tags": [
|
||||
"backwards",
|
||||
"reverse",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user