Merge branch 'main' of https://github.com/lucide-icons/lucide into next
@@ -24,7 +24,7 @@ jobs:
|
||||
if echo "$ISSUE_TITLE" | grep -i "$PHRASE"; then
|
||||
gh issue close ${{ github.event.issue.number }} --reason "not planned" --comment "This looks like a duplicate, use the [search](https://github.com/lucide-icons/lucide/issues?q=is%3Aissue+$PHRASE) to find similar issues.
|
||||
|
||||
Read more about brand guideline rules at [We're not accepting new Brand icons #670](https://github.com/lucide-icons/lucide/issues/670).
|
||||
Read [our official statement about brand logos in Lucide](https://github.com/lucide-icons/lucide/blob/main/BRAND_LOGOS_STATEMENT.md).
|
||||
|
||||
Always happy to help on [Discord](https://discord.gg/EH6nSts)."
|
||||
gh issue lock ${{ github.event.issue.number }} --reason spam
|
||||
|
||||
11
.vscode/svg.code-snippets
vendored
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"$schema": "https://raw.githubusercontent.com/Yash-Singh1/vscode-snippets-json-schema/main/schema.json",
|
||||
"Lucide SVG": {
|
||||
"scope": "xml",
|
||||
"description": "Base SVG with Lucide attributes.",
|
||||
@@ -51,6 +52,16 @@
|
||||
],
|
||||
"body": "<circle cx=\"${2:12}\" cy=\"${3:$2}\" r=\"${1|10,2,.5\" fill=\"currentColor|}\" />"
|
||||
},
|
||||
"Squircle": {
|
||||
"scope": "xml",
|
||||
"description": "SVG `path` with Lucide defaults.",
|
||||
"prefix": [
|
||||
"squircle",
|
||||
"path",
|
||||
"<path"
|
||||
],
|
||||
"body": "<path d=\"M12 3c7.2 0 9 1.8 9 9s-1.8 9-9 9-9-1.8-9-9 1.8-9 9-9\" />"
|
||||
},
|
||||
"Ellipse": {
|
||||
"scope": "xml",
|
||||
"description": "SVG `ellipse`.",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"$schema": "../category.schema.json",
|
||||
"title": "Navigation",
|
||||
"title": "Navigation, Maps, and POIs",
|
||||
"icon": "compass"
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
},
|
||||
{
|
||||
"name": "navigation",
|
||||
"title": "Navigation"
|
||||
"title": "Navigation, Maps, and POIs"
|
||||
},
|
||||
{
|
||||
"name": "notifications",
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
"documentation": "https://github.com/swisnl/nuxt-lucide-icons/blob/main/README.md"
|
||||
},
|
||||
{
|
||||
"name": "lucide-lustre",
|
||||
"name": "lucide_lustre",
|
||||
"description": "A library providing https://lucide.dev icons to lustre.",
|
||||
"icon": "/framework-logos/lustre.webp",
|
||||
"shields": [
|
||||
@@ -98,7 +98,7 @@
|
||||
},
|
||||
{
|
||||
"name": "lucide_icons_flutter",
|
||||
"description": "A library providing https://lucide.dev icons to lustre.",
|
||||
"description": "A library providing https://lucide.dev icons to Flutter.",
|
||||
"icon": "/framework-logos/flutter.svg",
|
||||
"shields": [
|
||||
{
|
||||
@@ -114,5 +114,62 @@
|
||||
],
|
||||
"source": "https://github.com/vqh2602/lucide-flutter-main",
|
||||
"documentation": "https://pub.dev/documentation/lucide_icons_flutter/latest/"
|
||||
},
|
||||
{
|
||||
"name": "lucide-slint",
|
||||
"description": "Implementation of the lucide icon library for Slint.",
|
||||
"icon": "/framework-logos/slint.svg",
|
||||
"shields": [
|
||||
{
|
||||
"alt": "Latest Stable Version",
|
||||
"src": "https://img.shields.io/crates/v/lucide-slint",
|
||||
"href": "https://crates.io/crates/lucide-slint"
|
||||
},
|
||||
{
|
||||
"alt": "Total Downloads",
|
||||
"src": "https://img.shields.io/crates/d/lucide-slint",
|
||||
"href": "https://crates.io/crates/lucide-slint"
|
||||
}
|
||||
],
|
||||
"source": "https://github.com/cnlancehu/lucide-slint",
|
||||
"documentation": "https://github.com/cnlancehu/lucide-slint/blob/main/README.md"
|
||||
},
|
||||
{
|
||||
"name": "lucide-go",
|
||||
"description": "Implementation of Lucide icons for Go's html/template package.",
|
||||
"icon": "/framework-logos/go.svg",
|
||||
"shields": [
|
||||
{
|
||||
"alt": "Latest Stable Version",
|
||||
"src": "https://img.shields.io/github/v/release/kaugesaar/lucide-go",
|
||||
"href": "https://github.com/kaugesaar/lucide-go/releases"
|
||||
},
|
||||
{
|
||||
"alt": "Go Reference",
|
||||
"src": "https://pkg.go.dev/badge/github.com/kaugesaar/lucide-go.svg",
|
||||
"href": "https://pkg.go.dev/github.com/kaugesaar/lucide-go"
|
||||
}
|
||||
],
|
||||
"source": "https://github.com/kaugesaar/lucide-go",
|
||||
"documentation": "https://github.com/kaugesaar/lucide-go/blob/master/README.md"
|
||||
},
|
||||
{
|
||||
"name": "lucide-rails",
|
||||
"description": "Ruby on Rails views helper method for rendering Lucide icons.",
|
||||
"icon": "/framework-logos/rails.svg",
|
||||
"shields": [
|
||||
{
|
||||
"alt": "Latest Stable Version",
|
||||
"src": "https://img.shields.io/gem/v/lucide-rails",
|
||||
"href": "https://rubygems.org/gems/lucide-rails"
|
||||
},
|
||||
{
|
||||
"alt": "Total Downloads",
|
||||
"src": "https://img.shields.io/gem/dt/lucide-rails",
|
||||
"href": "https://rubygems.org/gems/lucide-rails"
|
||||
}
|
||||
],
|
||||
"source": "https://github.com/heyvito/lucide-rails",
|
||||
"documentation": "https://github.com/heyvito/lucide-rails/blob/master/README.md"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
||||
@@ -3,12 +3,20 @@ import createLucideIcon from 'lucide-vue-next/src/createLucideIcon'
|
||||
import { search } from '../../../data/iconNodes'
|
||||
|
||||
const SearchIcon = createLucideIcon('search', search)
|
||||
|
||||
defineProps({
|
||||
shortcut: {
|
||||
type: String,
|
||||
required: false
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<button class="fake-input">
|
||||
<component :is="SearchIcon" class="search-icon"/>
|
||||
<slot/>
|
||||
<kbd v-if="shortcut" class="shortcut">{{ shortcut }}</kbd>
|
||||
</button>
|
||||
</template>
|
||||
|
||||
@@ -33,4 +41,23 @@ const SearchIcon = createLucideIcon('search', search)
|
||||
border-color: var(--vp-c-brand);
|
||||
background: var(--vp-c-bg-alt);
|
||||
}
|
||||
|
||||
.shortcut {
|
||||
margin-left: auto;
|
||||
padding: 2px 6px;
|
||||
font-size: 12px;
|
||||
font-family: inherit;
|
||||
font-weight: 500;
|
||||
line-height: 1.5;
|
||||
color: var(--vp-c-text-3);
|
||||
background: var(--vp-c-default-soft);
|
||||
border: 1px solid var(--vp-c-divider);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
@media (hover: none) {
|
||||
.shortcut {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -6,20 +6,35 @@ export default {
|
||||
export interface InputProps {
|
||||
type: string
|
||||
modelValue: string
|
||||
shortcut?: string
|
||||
}
|
||||
</script>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from 'vue'
|
||||
import { ref, onMounted, nextTick, watch } from 'vue'
|
||||
|
||||
const props = withDefaults(defineProps<InputProps>(), {
|
||||
type: 'text'
|
||||
})
|
||||
|
||||
const input = ref()
|
||||
const wrapperEl = ref()
|
||||
const shortcutEl = ref()
|
||||
|
||||
defineEmits(['change', 'input', 'update:modelValue'])
|
||||
|
||||
const updateShortcutSpacing = () => {
|
||||
nextTick(() => {
|
||||
if (shortcutEl.value && wrapperEl.value) {
|
||||
const shortcutWidth = shortcutEl.value.offsetWidth
|
||||
wrapperEl.value.style.setProperty('--shortcut-width', `${shortcutWidth}px`)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
onMounted(updateShortcutSpacing)
|
||||
watch(() => props.shortcut, updateShortcutSpacing)
|
||||
|
||||
defineExpose({
|
||||
focus: () => {
|
||||
input.value.focus()
|
||||
@@ -28,17 +43,18 @@ defineExpose({
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="input-wrapper">
|
||||
<div class="input-wrapper" ref="wrapperEl">
|
||||
<slot name="icon" class="icon" />
|
||||
<input
|
||||
:type="type"
|
||||
class="input"
|
||||
:class="{'has-icon': $slots.icon}"
|
||||
:class="{'has-icon': $slots.icon, 'has-shortcut': shortcut}"
|
||||
ref="input"
|
||||
:value="modelValue"
|
||||
v-bind="$attrs"
|
||||
@input="$emit('update:modelValue', $event.target.value)"
|
||||
/>
|
||||
<kbd v-if="shortcut" class="shortcut" ref="shortcutEl">{{ shortcut }}</kbd>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -57,6 +73,10 @@ defineExpose({
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.input.has-shortcut {
|
||||
padding-right: calc(var(--shortcut-width, 40px) + 22px);
|
||||
}
|
||||
|
||||
.input:hover, .input:focus {
|
||||
border-color: var(--vp-c-brand);
|
||||
background: var(--vp-c-bg-alt);
|
||||
@@ -66,7 +86,28 @@ defineExpose({
|
||||
padding-left: 52px;
|
||||
}
|
||||
|
||||
.shortcut {
|
||||
position: absolute;
|
||||
right: 12px;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
padding: 2px 6px;
|
||||
font-size: 12px;
|
||||
font-family: inherit;
|
||||
font-weight: 500;
|
||||
line-height: 1.5;
|
||||
color: var(--vp-c-text-3);
|
||||
background: var(--vp-c-default-soft);
|
||||
border: 1px solid var(--vp-c-divider);
|
||||
border-radius: 4px;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
@media (hover: none) {
|
||||
.shortcut {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style>
|
||||
|
||||
@@ -14,6 +14,7 @@ const SearchIcon = createLucideIcon('search', search)
|
||||
|
||||
interface Props {
|
||||
modelValue: string
|
||||
shortcut?: string
|
||||
}
|
||||
|
||||
const props = defineProps<Props>()
|
||||
@@ -39,6 +40,7 @@ const value = computed({
|
||||
ref="input"
|
||||
type="search"
|
||||
autofocus
|
||||
:shortcut="shortcut"
|
||||
v-bind="$attrs"
|
||||
v-model="value"
|
||||
class="input-wrapper"
|
||||
@@ -71,5 +73,4 @@ const value = computed({
|
||||
font-size: 14px;
|
||||
height: 48px;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@@ -5,10 +5,15 @@ import LucideIcon from '../base/LucideIcon.vue'
|
||||
import { useRouter } from 'vitepress';
|
||||
import { random } from 'lodash-es'
|
||||
import FakeInput from '../base/FakeInput.vue'
|
||||
import useSearchShortcut from '../../utils/useSearchShortcut'
|
||||
|
||||
const { go } = useRouter()
|
||||
const intervalTime = shallowRef()
|
||||
|
||||
const { shortcutText: kbdSearchShortcut } = useSearchShortcut(() => {
|
||||
go('/icons/?focus')
|
||||
})
|
||||
|
||||
const getInitialItems = () => data.icons.slice(0, 48)
|
||||
const items = ref(getInitialItems())
|
||||
let id = items.value.length + 1
|
||||
@@ -64,7 +69,11 @@ onBeforeUnmount(() => {
|
||||
</div>
|
||||
</TransitionGroup>
|
||||
</div>
|
||||
<FakeInput @click="go('/icons/?focus')" class="search-box">
|
||||
<FakeInput
|
||||
@click="go('/icons/?focus')"
|
||||
:shortcut="kbdSearchShortcut"
|
||||
class="search-box"
|
||||
>
|
||||
Search {{ data.iconsCount }} icons...
|
||||
</FakeInput>
|
||||
</div>
|
||||
|
||||
@@ -4,6 +4,7 @@ import type { IconEntity, Category } from '../../types';
|
||||
import useSearch from '../../composables/useSearch';
|
||||
import InputSearch from '../base/InputSearch.vue';
|
||||
import useSearchInput from '../../composables/useSearchInput';
|
||||
import useSearchShortcut from '../../utils/useSearchShortcut';
|
||||
import StickyBar from './StickyBar.vue';
|
||||
import IconsCategory from './IconsCategory.vue';
|
||||
import useFetchTags from '../../composables/useFetchTags';
|
||||
@@ -27,6 +28,10 @@ const activeIconName = ref(null);
|
||||
const { searchInput, searchQuery, searchQueryDebounced } = useSearchInput();
|
||||
const isSearching = computed(() => !!searchQuery.value);
|
||||
|
||||
const { shortcutText: kbdSearchShortcut } = useSearchShortcut(() => {
|
||||
searchInput.value?.focus();
|
||||
});
|
||||
|
||||
function setActiveIconName(name: string) {
|
||||
activeIconName.value = name;
|
||||
}
|
||||
@@ -154,6 +159,7 @@ watchEffect(() => {
|
||||
<InputSearch
|
||||
:placeholder="`Search ${icons.length} icons ...`"
|
||||
v-model="searchQuery"
|
||||
:shortcut="kbdSearchShortcut"
|
||||
class="input-wrapper"
|
||||
ref="searchInput"
|
||||
@focus="onFocusSearchInput"
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
<script setup lang="ts">
|
||||
import { ref, computed, defineAsyncComponent, onMounted, watch } from 'vue';
|
||||
import { ref, computed, defineAsyncComponent, onMounted, onBeforeUnmount, watch } from 'vue';
|
||||
import type { IconEntity } from '../../types';
|
||||
import { useElementSize, useEventListener, useVirtualList } from '@vueuse/core';
|
||||
import { useRoute } from 'vitepress';
|
||||
import IconGrid from './IconGrid.vue';
|
||||
import InputSearch from '../base/InputSearch.vue';
|
||||
import useSearch from '../../composables/useSearch';
|
||||
import useSearchInput from '../../composables/useSearchInput';
|
||||
import useSearchShortcut from '../../utils/useSearchShortcut';
|
||||
import StickyBar from './StickyBar.vue';
|
||||
import useFetchTags from '../../composables/useFetchTags';
|
||||
import useFetchCategories from '../../composables/useFetchCategories';
|
||||
@@ -58,6 +60,11 @@ const mappedIcons = computed(() => {
|
||||
});
|
||||
|
||||
const { searchInput, searchQuery, searchQueryDebounced } = useSearchInput();
|
||||
|
||||
const { shortcutText: kbdSearchShortcut } = useSearchShortcut(() => {
|
||||
searchInput.value?.focus();
|
||||
});
|
||||
|
||||
const searchResults = useSearch(searchQueryDebounced, mappedIcons, [
|
||||
{ name: 'name', weight: 3 },
|
||||
{ name: 'aliases', weight: 3 },
|
||||
@@ -80,8 +87,13 @@ const { list, containerProps, wrapperProps, scrollTo } = useVirtualList(
|
||||
onMounted(() => {
|
||||
containerProps.ref.value = document.documentElement;
|
||||
useEventListener(window, 'scroll', containerProps.onScroll)
|
||||
})
|
||||
|
||||
// Check if we should focus the search input from URL parameter
|
||||
const route = useRoute()
|
||||
if (route.data?.relativePath && window.location.search.includes('focus')) {
|
||||
searchInput.value?.focus()
|
||||
}
|
||||
})
|
||||
|
||||
function setActiveIconName(name: string) {
|
||||
activeIconName.value = name;
|
||||
@@ -118,6 +130,7 @@ function handleCloseDrawer() {
|
||||
:placeholder="`Search ${icons.length} icons ...`"
|
||||
v-model="searchQuery"
|
||||
ref="searchInput"
|
||||
:shortcut="kbdSearchShortcut"
|
||||
class="input-wrapper"
|
||||
@focus="onFocusSearchInput"
|
||||
/>
|
||||
|
||||
35
docs/.vitepress/theme/utils/useSearchShortcut.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import { ref, onMounted, onBeforeUnmount } from 'vue';
|
||||
|
||||
/**
|
||||
* Composable for handling search keyboard shortcuts.
|
||||
* Listens for Cmd/Ctrl+K and "/" keys to trigger a search action.
|
||||
*
|
||||
* @param callback - Function to execute when shortcut is triggered
|
||||
* @returns Object containing the platform-specific shortcut display text
|
||||
*/
|
||||
export default function useSearchShortcut(callback: () => void) {
|
||||
const shortcutText = ref('');
|
||||
|
||||
function handleKeydown(event: KeyboardEvent) {
|
||||
// Check for Cmd+K (Mac), Ctrl+K (Windows/Linux), or forward slash
|
||||
if (((event.metaKey || event.ctrlKey) && event.key === 'k') || event.key === '/') {
|
||||
event.preventDefault();
|
||||
callback();
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
// Detect platform and set appropriate keyboard shortcut for search focus
|
||||
const isMac = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);
|
||||
shortcutText.value = isMac ? '⌘K' : 'Ctrl+K';
|
||||
|
||||
// Add keyboard shortcut listener
|
||||
window.addEventListener('keydown', handleKeydown);
|
||||
});
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
window.removeEventListener('keydown', handleKeydown);
|
||||
});
|
||||
|
||||
return { shortcutText };
|
||||
}
|
||||
@@ -7,7 +7,7 @@ nextPage:
|
||||
|
||||
# What is Lucide?
|
||||
|
||||
Lucide is an open-source icon library that provides 1000+ vector (svg) files for displaying icons and symbols in digital and non-digital projects. The library aims to make it easier for designers and developers to incorporate icons into their projects by providing several official [packages](/packages) to make it easier to use these icons in your project.
|
||||
Lucide is an open-source icon library that provides 1000+ vector (svg) files for displaying icons and symbols in digital and non-digital projects. The library aims to make it easier for designers and developers to incorporate icons into their projects by providing several official [packages](/packages).
|
||||
|
||||
## Available Icons
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ Implementation of the lucide icon library for web applications.
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm install lucide
|
||||
pnpm add lucide
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
@@ -37,7 +37,7 @@ Implementation of the lucide icon library for React applications.
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm install lucide-react
|
||||
pnpm add lucide-react
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
@@ -64,7 +64,7 @@ Implementation of the lucide icon library for Vue applications.
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm install @lucide/vue
|
||||
pnpm add @lucide/vue
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
@@ -116,7 +116,7 @@ Implementation of the lucide icon library for Solid applications.
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm install lucide-solid
|
||||
pnpm add lucide-solid
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
@@ -142,7 +142,7 @@ Implementation of the lucide icon library for Angular applications.
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm install lucide-angular
|
||||
pnpm add lucide-angular
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
@@ -168,7 +168,7 @@ Implementation of the lucide icon library for preact applications.
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm install lucide-preact
|
||||
pnpm add lucide-preact
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
@@ -195,7 +195,7 @@ Implementation of the lucide icon library for Astro applications.
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm install @lucide/astro
|
||||
pnpm add @lucide/astro
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
@@ -221,7 +221,7 @@ Implementation of the lucide icon library for multiple usages that like to use:
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm install lucide-static
|
||||
pnpm add lucide-static
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
|
||||
@@ -1,13 +1,20 @@
|
||||
# Lucide Angular
|
||||
|
||||
Implementation of the lucide icon library for Angular applications.
|
||||
Angular components and services for Lucide icons that integrate with Angular's dependency injection and component system. Provides both traditional module-based and modern standalone component approaches for maximum flexibility in Angular applications.
|
||||
|
||||
**What you can accomplish:**
|
||||
- Use icons as Angular components with full dependency injection support
|
||||
- Configure icons globally through Angular services and providers
|
||||
- Choose from multiple component selectors (lucide-angular, lucide-icon, i-lucide, span-lucide)
|
||||
- Integrate with Angular's reactive forms and data binding
|
||||
- Build scalable applications with tree-shaken icon bundles and lazy loading support
|
||||
|
||||
## Installation
|
||||
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm install lucide-angular
|
||||
pnpm add lucide-angular
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
# Lucide Astro
|
||||
|
||||
Implementation of the lucide icon library for Astro applications.
|
||||
Astro components for Lucide icons that work perfectly with Astro's island architecture and multi-framework support. Each icon is an Astro component that renders as an inline SVG, providing excellent performance for static sites and server-side rendering scenarios.
|
||||
|
||||
**What you can accomplish:**
|
||||
- Use icons as Astro components with zero JavaScript runtime overhead
|
||||
- Build fast, static websites with optimized SVG icons
|
||||
- Integrate seamlessly with Astro's component islands and partial hydration
|
||||
- Create multi-framework applications where icons work across different UI libraries
|
||||
- Optimize performance with direct icon imports and build-time rendering
|
||||
|
||||
## Installation
|
||||
|
||||
|
||||
@@ -4,14 +4,21 @@ title: Lucide Preact
|
||||
|
||||
# Lucide Preact
|
||||
|
||||
Implementation of the lucide icon library for preact applications.
|
||||
Preact components for Lucide icons that provide React-like development experience with a smaller footprint. Each icon is a lightweight Preact component that renders as an inline SVG, perfect for applications that need React compatibility with minimal bundle size.
|
||||
|
||||
**What you can accomplish:**
|
||||
- Use icons as Preact components with React-like syntax and patterns
|
||||
- Build lightweight applications with Preact's smaller runtime
|
||||
- Create fast, responsive interfaces with minimal JavaScript overhead
|
||||
- Maintain React compatibility while reducing bundle size
|
||||
- Integrate with existing Preact applications and component libraries
|
||||
|
||||
## Installation
|
||||
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm install lucide-preact
|
||||
pnpm add lucide-preact
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
# Lucide React Native
|
||||
|
||||
Implementation of the lucide icon library for React Native applications
|
||||
React Native components for Lucide icons that work seamlessly across iOS and Android platforms. Built on top of react-native-svg, each icon renders as a native SVG component, providing consistent visual appearance and performance across mobile devices.
|
||||
|
||||
**What you can accomplish:**
|
||||
- Use icons as React Native components with platform-consistent rendering
|
||||
- Build cross-platform mobile apps with scalable vector icons
|
||||
- Create responsive interfaces that adapt to different screen densities
|
||||
- Integrate with React Native's styling system and animation libraries
|
||||
- Maintain consistent icon appearance across iOS and Android platforms
|
||||
|
||||
## Installation
|
||||
|
||||
@@ -9,7 +16,7 @@ First, ensure that you have `react-native-svg` (version between 12 and 15) insta
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm install lucide-react-native
|
||||
pnpm add lucide-react-native
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
|
||||
@@ -1,13 +1,20 @@
|
||||
# Lucide React
|
||||
|
||||
Implementation of the lucide icon library for react applications
|
||||
React components for Lucide icons that integrate seamlessly into your React applications. Each icon is a fully-typed React component that renders as an optimized inline SVG, giving you the flexibility of components with the performance of vector graphics.
|
||||
|
||||
**What you can accomplish:**
|
||||
- Import icons as React components with full TypeScript support
|
||||
- Pass props to customize size, color, stroke width, and other SVG attributes
|
||||
- Use icons in JSX with the same ease as any other React component
|
||||
- Benefit from automatic tree-shaking to include only the icons you use
|
||||
- Create dynamic icon components that respond to state and user interactions
|
||||
|
||||
## Installation
|
||||
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm install lucide-react
|
||||
pnpm add lucide-react
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
|
||||
@@ -1,13 +1,20 @@
|
||||
# Lucide Solid
|
||||
|
||||
Implementation of the lucide icon library for solid applications.
|
||||
SolidJS components for Lucide icons that leverage Solid's fine-grained reactivity system. Each icon is a reactive Solid component that renders as an inline SVG, providing exceptional performance through Solid's compile-time optimizations and reactive primitives.
|
||||
|
||||
**What you can accomplish:**
|
||||
- Use icons as SolidJS components with fine-grained reactivity
|
||||
- Create highly performant interfaces with Solid's reactive system
|
||||
- Build dynamic icon components that respond to signals and stores
|
||||
- Integrate seamlessly with Solid's JSX and component patterns
|
||||
- Optimize performance with direct icon imports and minimal runtime overhead
|
||||
|
||||
## Installation
|
||||
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm install lucide-solid
|
||||
pnpm add lucide-solid
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# Lucide Static
|
||||
|
||||
Static assets and utilities for Lucide icons that work without JavaScript frameworks. This package provides multiple formats including individual SVG files, SVG sprites, icon fonts, and Node.js utilities for server-side rendering and static site generation.
|
||||
|
||||
**What you can accomplish:**
|
||||
- Use individual SVG files as images or CSS background images
|
||||
- Implement icon fonts for CSS-based icon systems
|
||||
- Create SVG sprites for efficient icon loading in static sites
|
||||
- Import SVG strings in Node.js applications and server-side rendering
|
||||
- Build static websites and applications without JavaScript framework dependencies
|
||||
|
||||
This package includes the following implementations of Lucide icons:
|
||||
|
||||
- Individual SVG files
|
||||
@@ -29,7 +38,7 @@ For production environments, we recommend using a bundler with tree-shaking supp
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm install lucide-static
|
||||
pnpm add lucide-static
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
# Lucide Svelte
|
||||
|
||||
Implementation of the lucide icon library for svelte applications.
|
||||
Svelte components for Lucide icons that work seamlessly with both Svelte 4 and Svelte 5. Each icon is a reactive Svelte component that renders as an inline SVG, providing excellent performance and integration with Svelte's reactive system and modern features.
|
||||
|
||||
**What you can accomplish:**
|
||||
- Use icons as Svelte components with full reactivity and TypeScript support
|
||||
- Bind icon properties to reactive variables and stores
|
||||
- Create dynamic icon systems that respond to application state
|
||||
- Build type-safe interfaces with comprehensive TypeScript definitions
|
||||
- Optimize bundle sizes with direct icon imports and tree-shaking
|
||||
|
||||
## Installation
|
||||
|
||||
|
||||
@@ -1,13 +1,20 @@
|
||||
# Lucide Vue
|
||||
|
||||
Implementation of the lucide icon library for Vue applications.
|
||||
Vue 2 components for Lucide icons that integrate with Vue's Options API and template system. Each icon is a Vue component that renders as an inline SVG, providing familiar Vue development patterns for legacy applications still using Vue 2.
|
||||
|
||||
**What you can accomplish:**
|
||||
- Use icons as Vue 2 components with Options API integration
|
||||
- Maintain legacy Vue 2 applications with modern icon components
|
||||
- Integrate with Vue 2's template system and component lifecycle
|
||||
- Build applications using Vue 2's familiar syntax and patterns
|
||||
- Bridge the gap while planning migration to Vue 3
|
||||
|
||||
## Installation
|
||||
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm install @lucide/vue
|
||||
pnpm add @lucide/vue
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
# Lucide
|
||||
|
||||
Implementation of the lucide icon library for web applications.
|
||||
The core Lucide package for vanilla JavaScript applications. This package allows you to easily add scalable vector icons to any web project without framework dependencies. Perfect for static websites, legacy applications, or when you need lightweight icon integration with maximum browser compatibility.
|
||||
|
||||
**What you can accomplish:**
|
||||
- Add icons to HTML using simple data attributes
|
||||
- Dynamically create and insert SVG icons with JavaScript
|
||||
- Customize icon appearance with CSS classes and inline styles
|
||||
- Tree-shake unused icons to keep bundle sizes minimal
|
||||
- Use icons in any JavaScript environment or plain HTML
|
||||
|
||||
## Installation
|
||||
|
||||
@@ -9,7 +16,7 @@ Implementation of the lucide icon library for web applications.
|
||||
::: code-group
|
||||
|
||||
```sh [pnpm]
|
||||
pnpm install lucide
|
||||
pnpm add lucide
|
||||
```
|
||||
|
||||
```sh [yarn]
|
||||
@@ -93,6 +100,7 @@ In the `createIcons` function you can pass some extra parameters:
|
||||
- you can pass `nameAttr` to adjust the attribute name to replace for
|
||||
- you can pass `attrs` to pass additional custom attributes, for instance CSS classes or stroke options.
|
||||
- you can pass `root` to provide a custom DOM element the icons should be replaced in (useful when manipulating small sections of a large DOM or elements in the shadow DOM)
|
||||
- you can pass `inTemplates: true` to also replace icons inside `<template>` tags.
|
||||
|
||||
Here is a full example:
|
||||
|
||||
@@ -107,6 +115,7 @@ createIcons({
|
||||
},
|
||||
nameAttr: 'data-lucide', // attribute for the icon name.
|
||||
root: element, // DOM element to replace icons in.
|
||||
inTemplates: true // Also replace icons inside <template> tags.
|
||||
});
|
||||
```
|
||||
|
||||
@@ -124,6 +133,34 @@ createIcons({
|
||||
});
|
||||
```
|
||||
|
||||
### Custom Document root
|
||||
|
||||
Apply icons in a custom root element, for instance a shadow DOM root.
|
||||
|
||||
```js
|
||||
import { createIcons } from 'lucide';
|
||||
|
||||
// Custom root element, for instance a shadow DOM root.
|
||||
const shadowRoot = element.attachShadow({ mode: 'open' });
|
||||
|
||||
createIcons({
|
||||
root: shadowRoot
|
||||
});
|
||||
```
|
||||
|
||||
### Apply icons inside `<template>` tags
|
||||
|
||||
By default icons inside `<template>` tags are not added.
|
||||
By setting the `inTemplates` option to `true`, icons inside templates will also be replaced.
|
||||
|
||||
```js
|
||||
import { createIcons } from 'lucide';
|
||||
|
||||
createIcons({
|
||||
inTemplates: true
|
||||
});
|
||||
```
|
||||
|
||||
### Custom Element binding
|
||||
|
||||
```js
|
||||
|
||||
@@ -2,18 +2,23 @@ import { IconEntity } from '../../.vitepress/theme/types';
|
||||
|
||||
export default {
|
||||
paths: async () => {
|
||||
const iconDetailsResponse = await fetch('https://lab.lucide.dev/api/icon-details');
|
||||
const iconDetails = (await iconDetailsResponse.json()) as Record<string, IconEntity>;
|
||||
try {
|
||||
const iconDetailsResponse = await fetch('https://lab.lucide.dev/api/icon-details');
|
||||
const iconDetails = (await iconDetailsResponse.json()) as Record<string, IconEntity>;
|
||||
|
||||
return Object.values(iconDetails).map((iconEntity) => {
|
||||
const params = {
|
||||
externalLibrary: 'lab',
|
||||
...iconEntity,
|
||||
};
|
||||
return Object.values(iconDetails).map((iconEntity) => {
|
||||
const params = {
|
||||
externalLibrary: 'lab',
|
||||
...iconEntity,
|
||||
};
|
||||
|
||||
return {
|
||||
params,
|
||||
};
|
||||
});
|
||||
return {
|
||||
params,
|
||||
};
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Error fetching icon details:', error);
|
||||
return [];
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
55
docs/public/framework-logos/go.svg
Normal file
@@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 24.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 205.4 76.7" style="enable-background:new 0 0 205.4 76.7;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#00ACD7;}
|
||||
</style>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path class="st0" d="M15.5,23.2c-0.4,0-0.5-0.2-0.3-0.5l2.1-2.7c0.2-0.3,0.7-0.5,1.1-0.5h35.7c0.4,0,0.5,0.3,0.3,0.6l-1.7,2.6
|
||||
c-0.2,0.3-0.7,0.6-1,0.6L15.5,23.2z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path class="st0" d="M0.4,32.4c-0.4,0-0.5-0.2-0.3-0.5l2.1-2.7c0.2-0.3,0.7-0.5,1.1-0.5h45.6c0.4,0,0.6,0.3,0.5,0.6l-0.8,2.4
|
||||
c-0.1,0.4-0.5,0.6-0.9,0.6L0.4,32.4z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path class="st0" d="M24.6,41.6c-0.4,0-0.5-0.3-0.3-0.6l1.4-2.5c0.2-0.3,0.6-0.6,1-0.6h20c0.4,0,0.6,0.3,0.6,0.7L47.1,41
|
||||
c0,0.4-0.4,0.7-0.7,0.7L24.6,41.6z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g id="CXHf1q_3_">
|
||||
<g>
|
||||
<g>
|
||||
<path class="st0" d="M128.4,21.4c-6.3,1.6-10.6,2.8-16.8,4.4c-1.5,0.4-1.6,0.5-2.9-1c-1.5-1.7-2.6-2.8-4.7-3.8
|
||||
c-6.3-3.1-12.4-2.2-18.1,1.5c-6.8,4.4-10.3,10.9-10.2,19c0.1,8,5.6,14.6,13.5,15.7c6.8,0.9,12.5-1.5,17-6.6
|
||||
c0.9-1.1,1.7-2.3,2.7-3.7c-3.6,0-8.1,0-19.3,0c-2.1,0-2.6-1.3-1.9-3c1.3-3.1,3.7-8.3,5.1-10.9c0.3-0.6,1-1.6,2.5-1.6
|
||||
c5.1,0,23.9,0,36.4,0c-0.2,2.7-0.2,5.4-0.6,8.1c-1.1,7.2-3.8,13.8-8.2,19.6c-7.2,9.5-16.6,15.4-28.5,17
|
||||
c-9.8,1.3-18.9-0.6-26.9-6.6c-7.4-5.6-11.6-13-12.7-22.2c-1.3-10.9,1.9-20.7,8.5-29.3c7.1-9.3,16.5-15.2,28-17.3
|
||||
c9.4-1.7,18.4-0.6,26.5,4.9c5.3,3.5,9.1,8.3,11.6,14.1C130,20.6,129.6,21.1,128.4,21.4z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st0" d="M161.5,76.7c-9.1-0.2-17.4-2.8-24.4-8.8c-5.9-5.1-9.6-11.6-10.8-19.3c-1.8-11.3,1.3-21.3,8.1-30.2
|
||||
c7.3-9.6,16.1-14.6,28-16.7c10.2-1.8,19.8-0.8,28.5,5.1c7.9,5.4,12.8,12.7,14.1,22.3c1.7,13.5-2.2,24.5-11.5,33.9
|
||||
c-6.6,6.7-14.7,10.9-24,12.8C166.8,76.3,164.1,76.4,161.5,76.7z M185.3,36.3c-0.1-1.3-0.1-2.3-0.3-3.3
|
||||
c-1.8-9.9-10.9-15.5-20.4-13.3c-9.3,2.1-15.3,8-17.5,17.4c-1.8,7.8,2,15.7,9.2,18.9c5.5,2.4,11,2.1,16.3-0.6
|
||||
C180.5,51.3,184.8,44.9,185.3,36.3z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
10
docs/public/framework-logos/rails.svg
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg width="800px" height="800px" viewBox="0 -166 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
|
||||
<g fill="#CC0000">
|
||||
<path d="M219.115365,150.633753 C219.115365,150.633753 241.684635,148.699244 241.684635,119.552645 C241.684635,90.4060453 214.343577,87.697733 214.343577,87.697733 L165.078086,87.697733 L165.078086,179.651385 L189.839798,179.651385 L189.839798,157.469018 L211.248363,179.651385 L247.875063,179.651385 L219.115365,150.633753 Z M209.571788,131.804534 L189.839798,131.804534 L189.839798,110.782872 L209.700756,110.782872 C209.700756,110.782872 215.246348,112.846348 215.246348,121.229219 C215.246348,129.612091 209.571788,131.804534 209.571788,131.804534 Z M302.815113,88.3425693 L277.666499,88.3425693 C259.74005,88.3425693 253.678589,104.592443 253.678589,112.330479 L253.678589,179.651385 L278.827204,179.651385 L278.827204,163.530479 L302.428212,163.530479 L302.428212,179.651385 L326.803023,179.651385 L326.803023,112.330479 C326.803023,92.7274559 309.005542,88.3425693 302.815113,88.3425693 Z M302.428212,137.479093 L278.698237,137.479093 L278.698237,115.167758 C278.698237,115.167758 278.698237,110.138035 286.565239,110.138035 L295.206045,110.138035 C302.170277,110.138035 302.299244,115.167758 302.299244,115.167758 L302.299244,137.479093 L302.428212,137.479093 Z M338.281108,88.3425693 L364.461461,88.3425693 L364.461461,179.651385 L338.281108,179.651385 L338.281108,88.3425693 Z M401.217128,156.050378 L401.217128,88.3425693 L375.165743,88.3425693 L375.165743,156.050378 L375.165743,179.651385 L401.217128,179.651385 L436.425189,179.651385 L436.425189,156.050378 L401.217128,156.050378 Z M445.065995,156.308312 L445.065995,179.651385 L487.238287,179.651385 C495.879093,179.651385 510.710327,173.33199 511.226196,155.663476 L511.226196,146.635768 C511.226196,131.546599 498.84534,122.647859 487.238287,122.647859 L466.216625,122.647859 L466.216625,111.81461 L507.873048,111.81461 L507.873048,88.3425693 L467.893199,88.3425693 C457.575819,88.3425693 443.776322,96.8544081 443.776322,112.71738 L443.776322,120.842317 C443.776322,136.70529 457.446851,144.830227 467.893199,144.830227 C496.910831,144.959194 460.928967,144.830227 487.754156,144.830227 L487.754156,156.179345 L445.065995,156.308312 Z">
|
||||
|
||||
</path>
|
||||
<path d="M9.02770781,179.522418 L110.911839,179.522418 C110.911839,179.522418 91.4377834,90.6639798 155.921411,54.6821159 C169.978841,47.8468514 214.730479,22.311335 287.983879,76.4775819 C290.30529,74.543073 292.497733,72.995466 292.497733,72.995466 C292.497733,72.995466 225.434761,6.06146096 150.76272,13.5415617 C113.233249,16.8947103 67.0629723,51.0710327 39.9798489,96.2095718 C12.8967254,141.348111 9.02770781,179.522418 9.02770781,179.522418 Z M221.307809,20.763728 L221.823678,12.1229219 C220.662972,11.4780856 217.438791,9.93047859 209.313854,7.60906801 L208.797985,16.1209068 C213.053904,17.5395466 217.180856,19.0871537 221.307809,20.763728 Z M209.055919,48.1047859 L208.54005,56.2297229 C212.79597,56.3586902 217.051889,56.8745592 221.307809,57.77733 L221.823678,49.7813602 C217.438791,48.8785894 213.182872,48.3627204 209.055919,48.1047859 Z M161.338035,7.86700252 L162.627708,7.86700252 L160.048363,-7.10542736e-15 C156.050378,-7.10542736e-15 151.923426,0.257934509 147.667506,0.773803526 L150.117884,8.38287154 C153.857935,7.99596977 157.597985,7.86700252 161.338035,7.86700252 Z M167.528463,55.3269521 L170.49471,64.2256927 C174.234761,62.4201511 177.974811,60.8725441 181.714861,59.7118388 L178.877582,51.2 C174.492695,52.4896725 170.752645,53.9083123 167.528463,55.3269521 Z M108.97733,21.4085642 L103.173804,12.5098237 C99.9496222,14.186398 96.5964736,15.9919395 93.1143577,18.0554156 L99.0468514,27.0831234 C102.4,25.0196474 105.624181,23.0851385 108.97733,21.4085642 Z M135.415617,79.4438287 L141.606045,88.729471 C143.798489,85.5052897 146.377834,82.5390428 149.215113,79.572796 L143.411587,70.8030227 C140.44534,73.511335 137.737028,76.4775819 135.415617,79.4438287 Z M116.715365,120.971285 L127.161713,129.225189 C127.677582,124.195466 128.580353,119.165743 129.870025,114.13602 L120.584383,106.784887 C118.907809,111.556675 117.747103,116.328463 116.715365,120.971285 Z M60.2277078,59.7118388 L51.0710327,51.715869 C47.7178841,54.9400504 44.4937028,58.1642317 41.5274559,61.3884131 L51.4579345,69.9002519 C54.1662469,66.418136 57.1324937,62.9360202 60.2277078,59.7118388 Z M21.279597,117.360202 L6.44836272,111.943577 C3.99798489,117.489169 1.28967254,123.937531 0,127.419647 L14.8312343,132.836272 C16.5078086,128.451385 19.2161209,122.13199 21.279597,117.360202 Z M114.780856,153.728967 C115.038791,160.564232 115.683627,166.109824 116.328463,169.978841 L131.804534,175.524433 C130.643829,170.49471 129.483123,164.820151 128.70932,158.75869 L114.780856,153.728967 Z">
|
||||
|
||||
</path>
|
||||
|
After Width: | Height: | Size: 4.8 KiB |
7
docs/public/framework-logos/slint.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg width="35" height="35" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs />
|
||||
<path fill="#2379f4" stroke="none"
|
||||
d="M 10.65 32.39 L 27.6 20.64 C 27.6 20.64 28.36 20.2 28.36 19.51 C 28.36 18.59 27.390001 18.29 27.390001 18.29 L 18.06 14.6 C 17.73 14.47 17.27 14.84 17.7 15.3 L 20.79 18.39 C 20.79 18.39 21.65 19.23 21.65 19.79 C 21.65 20.35 21.12 20.84 21.12 20.84 L 9.89 31.7 C 9.49 32.09 10.03 32.79 10.64 32.41 Z" />
|
||||
<path fill="#2379f4" stroke="none"
|
||||
d="M 24.35 2.61 L 7.4 14.35 C 7.4 14.35 6.64 14.789999 6.64 15.48 C 6.64 16.4 7.61 16.7 7.61 16.7 L 16.94 20.39 C 17.27 20.52 17.73 20.15 17.3 19.69 L 14.210001 16.59 C 14.210001 16.59 13.35 15.750001 13.35 15.19 C 13.35 14.630001 13.88 14.14 13.88 14.14 L 25.09 3.32 C 25.500002 2.93 24.96 2.23 24.340002 2.61 Z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 800 B |
@@ -2,7 +2,8 @@
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"danielbayley",
|
||||
"karsa-mistmere"
|
||||
"karsa-mistmere",
|
||||
"jguddas"
|
||||
],
|
||||
"tags": [
|
||||
"and",
|
||||
|
||||
@@ -9,6 +9,6 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M17.5 12c0 4.4-3.6 8-8 8A4.5 4.5 0 0 1 5 15.5c0-6 8-4 8-8.5a3 3 0 1 0-6 0c0 3 2.5 8.5 12 13" />
|
||||
<path d="M16 12h3" />
|
||||
<path d="M17.5 12a8 8 0 0 1-8 8A4.5 4.5 0 0 1 5 15.5c0-6 8-4 8-8.5a3 3 0 1 0-6 0c0 3 2.5 8.5 12 13" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 339 B After Width: | Height: | Size: 337 B |
@@ -3,7 +3,8 @@
|
||||
"contributors": [
|
||||
"colebemis",
|
||||
"csandman",
|
||||
"ericfennis"
|
||||
"ericfennis",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"tags": [
|
||||
"ship"
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M12 22V8" />
|
||||
<path d="M5 12H2a10 10 0 0 0 20 0h-3" />
|
||||
<circle cx="12" cy="5" r="3" />
|
||||
<path d="M12 6v16" />
|
||||
<path d="m19 13 2-1a9 9 0 0 1-18 0l2 1" />
|
||||
<path d="M9 11h6" />
|
||||
<circle cx="12" cy="4" r="2" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 309 B After Width: | Height: | Size: 334 B |
@@ -15,7 +15,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"gaming",
|
||||
"files"
|
||||
]
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"gaming"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"gaming"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"gaming"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"gaming"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"gaming"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"text",
|
||||
"development",
|
||||
"gaming"
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"text",
|
||||
"development",
|
||||
"gaming"
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"files"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
"diagonal"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
"diagonal"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
"into"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"files",
|
||||
"development"
|
||||
]
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
"move"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
"south"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
"<-|"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
"->"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
"|<-"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
"<-"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
"|->"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
"->"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"development"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
"->"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
"move"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
"out"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"files",
|
||||
"development"
|
||||
]
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
"diagonal"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
"diagonal"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"files"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
"north"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
]
|
||||
}
|
||||
|
||||
21
icons/birdhouse.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"hieu-onefold",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"tags": [
|
||||
"birdhouse",
|
||||
"bird",
|
||||
"garden",
|
||||
"home",
|
||||
"house",
|
||||
"woodwork"
|
||||
],
|
||||
"categories": [
|
||||
"nature",
|
||||
"animals",
|
||||
"navigation",
|
||||
"home"
|
||||
]
|
||||
}
|
||||
@@ -9,8 +9,10 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v1" />
|
||||
<path d="M14 2v4a2 2 0 0 0 2 2h4" />
|
||||
<rect width="8" height="5" x="2" y="13" rx="1" />
|
||||
<path d="M8 13v-2a2 2 0 1 0-4 0v2" />
|
||||
<path d="M12 18v4" />
|
||||
<path d="m17 18 1.956-11.468" />
|
||||
<path d="m3 8 7.82-5.615a2 2 0 0 1 2.36 0L21 8" />
|
||||
<path d="M4 18h16" />
|
||||
<path d="M7 18 5.044 6.532" />
|
||||
<circle cx="12" cy="10" r="2" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 402 B After Width: | Height: | Size: 412 B |
@@ -9,11 +9,9 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z" />
|
||||
<path d="M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2" />
|
||||
<path d="M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2" />
|
||||
<path d="M10 6h4" />
|
||||
<path d="M10 10h4" />
|
||||
<path d="M10 14h4" />
|
||||
<path d="M10 18h4" />
|
||||
<path d="M10 12h4" />
|
||||
<path d="M10 8h4" />
|
||||
<path d="M14 21v-3a2 2 0 0 0-4 0v3" />
|
||||
<path d="M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2" />
|
||||
<path d="M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 471 B After Width: | Height: | Size: 441 B |
@@ -9,9 +9,9 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M3 20a2 2 0 0 0 2 2h10a2.4 2.4 0 0 0 1.706-.706l3.588-3.588A2.4 2.4 0 0 0 21 16V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z" />
|
||||
<path d="M15 22v-5a1 1 0 0 1 1-1h5" />
|
||||
<path d="M8 2v4" />
|
||||
<path d="M16 2v4" />
|
||||
<path d="M21 17V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11Z" />
|
||||
<path d="M3 10h18" />
|
||||
<path d="M15 22v-4a2 2 0 0 1 2-2h4" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 393 B After Width: | Height: | Size: 446 B |
22
icons/calendars.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"colebemis",
|
||||
"ericfennis",
|
||||
"jguddas",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"tags": [
|
||||
"date",
|
||||
"month",
|
||||
"year",
|
||||
"event",
|
||||
"dates",
|
||||
"months",
|
||||
"years",
|
||||
"events"
|
||||
],
|
||||
"categories": [
|
||||
"time"
|
||||
]
|
||||
}
|
||||
18
icons/calendars.svg
Normal file
@@ -0,0 +1,18 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M12 2v2" />
|
||||
<path d="M15.726 21.01A2 2 0 0 1 14 22H4a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2" />
|
||||
<path d="M18 2v2" />
|
||||
<path d="M2 13h2" />
|
||||
<path d="M8 8h14" />
|
||||
<rect x="8" y="3" width="14" height="14" rx="2" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 431 B |
@@ -12,6 +12,7 @@
|
||||
],
|
||||
"categories": [
|
||||
"buildings",
|
||||
"gaming"
|
||||
"gaming",
|
||||
"navigation"
|
||||
]
|
||||
}
|
||||
|
||||
17
icons/chess-bishop.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"tags": [
|
||||
"mitre",
|
||||
"miter",
|
||||
"piece",
|
||||
"board game",
|
||||
"religion"
|
||||
],
|
||||
"categories": [
|
||||
"gaming",
|
||||
"emoji"
|
||||
]
|
||||
}
|
||||
16
icons/chess-bishop.svg
Normal file
@@ -0,0 +1,16 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z" />
|
||||
<path d="M15 18c1.5-.615 3-2.461 3-4.923C18 8.769 14.5 4.462 12 2 9.5 4.462 6 8.77 6 13.077 6 15.539 7.5 17.385 9 18" />
|
||||
<path d="m16 7-2.5 2.5" />
|
||||
<path d="M9 2h6" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 467 B |
17
icons/chess-king.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"tags": [
|
||||
"ruler",
|
||||
"crown",
|
||||
"piece",
|
||||
"board game",
|
||||
"stalemate"
|
||||
],
|
||||
"categories": [
|
||||
"gaming",
|
||||
"emoji"
|
||||
]
|
||||
}
|
||||
16
icons/chess-king.svg
Normal file
@@ -0,0 +1,16 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M4 20a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1z" />
|
||||
<path d="m6.7 18-1-1C4.35 15.682 3 14.09 3 12a5 5 0 0 1 4.95-5c1.584 0 2.7.455 4.05 1.818C13.35 7.455 14.466 7 16.05 7A5 5 0 0 1 21 12c0 2.082-1.359 3.673-2.7 5l-1 1" />
|
||||
<path d="M10 4h4" />
|
||||
<path d="M12 2v6.818" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 515 B |
15
icons/chess-knight.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"tags": [
|
||||
"piece",
|
||||
"horse",
|
||||
"board game"
|
||||
],
|
||||
"categories": [
|
||||
"gaming",
|
||||
"emoji"
|
||||
]
|
||||
}
|
||||
17
icons/chess-knight.svg
Normal file
@@ -0,0 +1,17 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z" />
|
||||
<path d="M16.5 18c1-2 2.5-5 2.5-9a7 7 0 0 0-7-7H6.635a1 1 0 0 0-.768 1.64L7 5l-2.32 5.802a2 2 0 0 0 .95 2.526l2.87 1.456" />
|
||||
<path d="m15 5 1.425-1.425" />
|
||||
<path d="m17 8 1.53-1.53" />
|
||||
<path d="M9.713 12.185 7 18" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 518 B |
14
icons/chess-pawn.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"tags": [
|
||||
"piece",
|
||||
"board game"
|
||||
],
|
||||
"categories": [
|
||||
"gaming",
|
||||
"emoji"
|
||||
]
|
||||
}
|
||||
@@ -9,9 +9,9 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v6" />
|
||||
<path d="M14 2v4a2 2 0 0 0 2 2h4" />
|
||||
<circle cx="4" cy="16" r="2" />
|
||||
<path d="m10 10-4.5 4.5" />
|
||||
<path d="m9 11 1 1" />
|
||||
<path d="M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z" />
|
||||
<path d="m14.5 10 1.5 8" />
|
||||
<path d="M7 10h10" />
|
||||
<path d="m8 18 1.5-8" />
|
||||
<circle cx="12" cy="6" r="4" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 399 B After Width: | Height: | Size: 408 B |
17
icons/chess-queen.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"tags": [
|
||||
"ruler",
|
||||
"crown",
|
||||
"piece",
|
||||
"board game",
|
||||
"stalemate"
|
||||
],
|
||||
"categories": [
|
||||
"gaming",
|
||||
"emoji"
|
||||
]
|
||||
}
|
||||
20
icons/chess-queen.svg
Normal file
@@ -0,0 +1,20 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M4 20a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1z" />
|
||||
<path d="m12.474 5.943 1.567 5.34a1 1 0 0 0 1.75.328l2.616-3.402" />
|
||||
<path d="m20 9-3 9" />
|
||||
<path d="m5.594 8.209 2.615 3.403a1 1 0 0 0 1.75-.329l1.567-5.34" />
|
||||
<path d="M7 18 4 9" />
|
||||
<circle cx="12" cy="4" r="2" />
|
||||
<circle cx="20" cy="7" r="2" />
|
||||
<circle cx="4" cy="7" r="2" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 586 B |
@@ -1,14 +1,16 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"ericfennis",
|
||||
"karsa-mistmere",
|
||||
"danielbayley"
|
||||
"jguddas"
|
||||
],
|
||||
"tags": [
|
||||
"document"
|
||||
"castle",
|
||||
"piece",
|
||||
"board game"
|
||||
],
|
||||
"categories": [
|
||||
"files"
|
||||
"gaming",
|
||||
"emoji"
|
||||
]
|
||||
}
|
||||
19
icons/chess-rook.svg
Normal file
@@ -0,0 +1,19 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z" />
|
||||
<path d="M10 2v2" />
|
||||
<path d="M14 2v2" />
|
||||
<path d="m17 18-1-9" />
|
||||
<path d="M6 2v5a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V2" />
|
||||
<path d="M6 4h12" />
|
||||
<path d="m7 18 1-9" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 467 B |
@@ -11,7 +11,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"gaming"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
"<"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"math",
|
||||
"development"
|
||||
]
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"math",
|
||||
"gaming"
|
||||
]
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"gaming"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"gaming"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"gaming"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"gaming"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"gaming"
|
||||
],
|
||||
"aliases": [
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"gaming"
|
||||
],
|
||||
"aliases": [
|
||||
|
||||
@@ -10,8 +10,7 @@
|
||||
"diagonal"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
],
|
||||
"aliases": [
|
||||
{
|
||||
|
||||
@@ -10,8 +10,7 @@
|
||||
"diagonal"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
],
|
||||
"aliases": [
|
||||
{
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"development"
|
||||
],
|
||||
"aliases": [
|
||||
|
||||
@@ -10,8 +10,7 @@
|
||||
"diagonal"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
],
|
||||
"aliases": [
|
||||
{
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"gaming"
|
||||
],
|
||||
"aliases": [
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"gaming"
|
||||
],
|
||||
"aliases": [
|
||||
|
||||
@@ -9,8 +9,7 @@
|
||||
"menu"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
],
|
||||
"aliases": [
|
||||
{
|
||||
|
||||
@@ -12,8 +12,7 @@
|
||||
"<"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
],
|
||||
"aliases": [
|
||||
{
|
||||
|
||||
@@ -11,8 +11,7 @@
|
||||
">"
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation"
|
||||
"arrows"
|
||||
],
|
||||
"aliases": [
|
||||
{
|
||||
|
||||