Compare commits
6 commits
dc924e9c1d
...
576421a6be
Author | SHA1 | Date | |
---|---|---|---|
576421a6be | |||
a97795fd6d | |||
a0179e824e | |||
1bef285a76 | |||
bff33f063b | |||
01ef9a0b18 |
6 changed files with 432 additions and 12 deletions
|
@ -1,20 +1,101 @@
|
|||
---
|
||||
obj: application
|
||||
repo: https://github.com/ismaelgv/rnr
|
||||
rev: 2025-05-19
|
||||
---
|
||||
|
||||
# rnr
|
||||
[Repo](https://github.com/ismaelgv/rnr)
|
||||
**RnR** is a command-line tool to **securely rename** multiple files and directories that supports regular expressions.
|
||||
RnR is a command-line tool to rename multiple files and directories that supports regular expressions.
|
||||
|
||||
## Usage
|
||||
Flags
|
||||
```shell
|
||||
-n, --dry-run Only show what would be done (default mode)
|
||||
-f, --force Make actual changes to files
|
||||
-x, --hidden Include hidden files and directories
|
||||
-D, --include-dirs Rename matching directories
|
||||
-r, --recursive Recursive mode
|
||||
-s, --silent Do not print any information
|
||||
--no-dump Do not dump operations into a file
|
||||
```
|
||||
Usage: `rnr <COMMAND>`
|
||||
|
||||
Commands:
|
||||
- `regex`: Rename files and directories using a regular expression
|
||||
- `from-file`: Read operations from a dump file
|
||||
- `to-ascii`: Replace file name UTF-8 chars with ASCII chars representation
|
||||
|
||||
### regex
|
||||
```
|
||||
Rename files and directories using a regular expression
|
||||
|
||||
Usage: rnr regex [OPTIONS] <EXPRESSION> <REPLACEMENT> <PATH(S)>...
|
||||
|
||||
Arguments:
|
||||
<EXPRESSION> Expression to match (can be a regex)
|
||||
<REPLACEMENT> Expression replacement (use single quotes for capture groups)
|
||||
<PATH(S)>... Target paths
|
||||
|
||||
Options:
|
||||
-n, --dry-run
|
||||
Only show what would be done (default mode)
|
||||
-f, --force
|
||||
Make actual changes to files
|
||||
-b, --backup
|
||||
Generate file backups before renaming
|
||||
-s, --silent
|
||||
Do not print any information
|
||||
--color <COLOR>
|
||||
Set color output mode [default: auto] [possible values: always, never, auto]
|
||||
--dump
|
||||
Force dumping operations into a file even in dry-run mode
|
||||
--dump-prefix <DUMP_PREFIX>
|
||||
Set the dump file prefix [default: rnr-]
|
||||
--no-dump
|
||||
Do not dump operations into a file
|
||||
-l, --replace-limit <LIMIT>
|
||||
Limit of replacements, all matches if set to 0
|
||||
-t, --replace-transform <REPLACE_TRANSFORM>
|
||||
Apply a transformation to replacements including captured groups [possible values: upper, lower, ascii]
|
||||
-D, --include-dirs
|
||||
Rename matching directories
|
||||
-r, --recursive
|
||||
Recursive mode
|
||||
-d, --max-depth <LEVEL>
|
||||
Set max depth in recursive mode
|
||||
-x, --hidden
|
||||
Include hidden files and directories
|
||||
```
|
||||
|
||||
### from-file
|
||||
```
|
||||
Read operations from a dump file
|
||||
|
||||
Usage: rnr from-file [OPTIONS] <DUMPFILE>
|
||||
|
||||
Arguments:
|
||||
<DUMPFILE>
|
||||
|
||||
Options:
|
||||
-n, --dry-run Only show what would be done (default mode)
|
||||
-f, --force Make actual changes to files
|
||||
-b, --backup Generate file backups before renaming
|
||||
-s, --silent Do not print any information
|
||||
--color <COLOR> Set color output mode [default: auto] [possible values: always, never, auto]
|
||||
--dump Force dumping operations into a file even in dry-run mode
|
||||
--dump-prefix <DUMP_PREFIX> Set the dump file prefix [default: rnr-]
|
||||
--no-dump Do not dump operations into a file
|
||||
-u, --undo Undo the operations from the dump file
|
||||
```
|
||||
|
||||
### to-ascii
|
||||
```
|
||||
Usage: rnr to-ascii [OPTIONS] <PATH(S)>...
|
||||
|
||||
Arguments:
|
||||
<PATH(S)>... Target paths
|
||||
|
||||
Options:
|
||||
-n, --dry-run Only show what would be done (default mode)
|
||||
-f, --force Make actual changes to files
|
||||
-b, --backup Generate file backups before renaming
|
||||
-s, --silent Do not print any information
|
||||
--color <COLOR> Set color output mode [default: auto] [possible values: always, never, auto]
|
||||
--dump Force dumping operations into a file even in dry-run mode
|
||||
--dump-prefix <DUMP_PREFIX> Set the dump file prefix [default: rnr-]
|
||||
--no-dump Do not dump operations into a file
|
||||
-D, --include-dirs Rename matching directories
|
||||
-r, --recursive Recursive mode
|
||||
-d, --max-depth <LEVEL> Set max depth in recursive mode
|
||||
-x, --hidden Include hidden files and directories
|
||||
```
|
||||
|
|
41
technology/applications/development/ruff.md
Normal file
41
technology/applications/development/ruff.md
Normal file
|
@ -0,0 +1,41 @@
|
|||
---
|
||||
obj: application
|
||||
repo: https://github.com/astral-sh/ruff
|
||||
website: https://docs.astral.sh/ruff
|
||||
rev: 2025-05-19
|
||||
---
|
||||
|
||||
# ruff
|
||||
An extremely fast Python linter and code formatter, written in Rust.
|
||||
|
||||
## The Ruff Linter
|
||||
The Ruff Linter is an extremely fast Python linter designed as a drop-in replacement for [Flake8](https://pypi.org/project/flake8/) (plus dozens of plugins), [isort](https://pypi.org/project/isort/), [pydocstyle](https://pypi.org/project/pydocstyle/), [pyupgrade](https://pypi.org/project/pyupgrade/), [autoflake](https://pypi.org/project/autoflake/), and more.
|
||||
|
||||
### `ruff check`
|
||||
`ruff check` is the primary entrypoint to the Ruff linter. It accepts a list of files or directories, and lints all discovered Python files, optionally fixing any fixable errors. When linting a directory, Ruff searches for Python files recursively in that directory and all its subdirectories:
|
||||
|
||||
```console
|
||||
$ ruff check # Lint files in the current directory.
|
||||
$ ruff check --fix # Lint files in the current directory and fix any fixable errors.
|
||||
$ ruff check --watch # Lint files in the current directory and re-lint on change.
|
||||
$ ruff check path/to/code/ # Lint files in `path/to/code`.
|
||||
```
|
||||
|
||||
## The Ruff Formatter
|
||||
The Ruff formatter is an extremely fast Python code formatter designed as a drop-in replacement for [Black](https://pypi.org/project/black/), available as part of the `ruff` CLI via `ruff format`.
|
||||
|
||||
### `ruff format`
|
||||
`ruff format` is the primary entrypoint to the formatter. It accepts a list of files or directories, and formats all discovered Python files:
|
||||
|
||||
```shell
|
||||
ruff format # Format all files in the current directory.
|
||||
ruff format path/to/code/ # Format all files in `path/to/code` (and any subdirectories).
|
||||
ruff format path/to/file.py # Format a single file.
|
||||
```
|
||||
|
||||
Similar to Black, running `ruff format /path/to/file.py` will format the given file or directory in-place, while `ruff format --check /path/to/file.py` will avoid writing any formatted files back, and instead exit with a non-zero status code upon detecting any unformatted files.
|
||||
|
||||
For the full list of supported options, run `ruff format --help`.
|
||||
|
||||
## Configuration
|
||||
ruff can be configured via `ruff.toml` config file. See [here](https://docs.astral.sh/ruff/settings/) for a reference of all config parameters.
|
8
technology/applications/utilities/octopi.md
Normal file
8
technology/applications/utilities/octopi.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
obj: application
|
||||
repo: https://github.com/aarnt/octopi
|
||||
---
|
||||
|
||||
# Octopi
|
||||
Octopi is a graphical user interface for the Arch Linux pacman package management tool.
|
||||
It consists of a package browser, sudo helper, notifier, cache cleaner and repository editor.
|
208
technology/applications/web/opengist.md
Normal file
208
technology/applications/web/opengist.md
Normal file
|
@ -0,0 +1,208 @@
|
|||
---
|
||||
obj: application
|
||||
website: https://opengist.io
|
||||
repo: https://github.com/thomiceli/opengist
|
||||
rev: 2025-05-19
|
||||
---
|
||||
|
||||
# OpenGist
|
||||
Opengist is a self-hosted pastebin powered by Git. All snippets are stored in a Git repository and can be read and/or modified using standard Git commands, or with the web interface. It is similiar to GitHub Gist, but open-source and could be self-hosted.
|
||||
|
||||
## Features
|
||||
- Create public, unlisted or private snippets
|
||||
- Init / Clone / Pull / Push snippets via Git over HTTP or SSH
|
||||
- Syntax highlighting ; markdown & CSV support
|
||||
- Search code in snippets ; browse users snippets, likes and forks
|
||||
- Add topics to snippets
|
||||
- Embed snippets in other websites
|
||||
- Revisions history
|
||||
- Like / Fork snippets
|
||||
- Editor with indentation mode & size ; drag and drop files
|
||||
- Download raw files or as a ZIP archive
|
||||
- Retrieve snippet data/metadata via a JSON API
|
||||
- OAuth2 login with GitHub, GitLab, Gitea, and OpenID Connect
|
||||
- Avatars via Gravatar or OAuth2 providers
|
||||
- Light/Dark mode
|
||||
- Responsive UI
|
||||
- Enable or disable signups
|
||||
- Restrict or unrestrict snippets visibility to anonymous users
|
||||
|
||||
## Compose
|
||||
```yml
|
||||
services:
|
||||
opengist:
|
||||
image: ghcr.io/thomiceli/opengist:1
|
||||
container_name: opengist
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "6157:6157" # HTTP port
|
||||
- "2222:2222" # SSH port, can be removed if you don't use SSH
|
||||
volumes:
|
||||
- "$HOME/.opengist:/opengist"
|
||||
environment:
|
||||
# OG_LOG_LEVEL: info
|
||||
# other configuration options
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
| YAML Config Key | Environment Variable | Default value | Description |
|
||||
| --------------------- | ----------------------------------- | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| log-level | OG_LOG_LEVEL | `warn` | Set the log level to one of the following: `debug`, `info`, `warn`, `error`, `fatal`. |
|
||||
| log-output | OG_LOG_OUTPUT | `stdout,file` | Set the log output to one or more of the following: `stdout`, `file`. |
|
||||
| external-url | OG_EXTERNAL_URL | none | Public URL to access to Opengist. |
|
||||
| opengist-home | OG_OPENGIST_HOME | home directory | Path to the directory where Opengist stores its data. |
|
||||
| secret-key | OG_SECRET_KEY | randomized 32 bytes | Secret key used for session store & encrypt MFA data on database. |
|
||||
| db-uri | OG_DB_URI | `opengist.db` | URI of the database. |
|
||||
| index | OG_INDEX | `bleve` | Define the code indexer (either `bleve`, `meilisearch`, or empty for no index). |
|
||||
| index.meili.host | OG_MEILI_HOST | none | Set the host for the Meiliseach server. |
|
||||
| index.meili.api-key | OG_MEILI_API_KEY | none | Set the API key for the Meiliseach server. |
|
||||
| git.default-branch | OG_GIT_DEFAULT_BRANCH | none | Default branch name used by Opengist when initializing Git repositories. If not set, uses the Git default branch name. More info [here](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup#_new_default_branch) |
|
||||
| sqlite.journal-mode | OG_SQLITE_JOURNAL_MODE | `WAL` | Set the journal mode for SQLite. More info [here](https://www.sqlite.org/pragma.html#pragma_journal_mode) |
|
||||
| http.host | OG_HTTP_HOST | `0.0.0.0` | The host on which the HTTP server should bind. |
|
||||
| http.port | OG_HTTP_PORT | `6157` | The port on which the HTTP server should listen. |
|
||||
| http.git-enabled | OG_HTTP_GIT_ENABLED | `true` | Enable or disable git operations (clone, pull, push) via HTTP. (`true` or `false`) |
|
||||
| metrics.enabled | OG_METRICS_ENABLED | `false` | Enable or disable Prometheus metrics endpoint at `/metrics` (`true` or `false`) |
|
||||
| ssh.git-enabled | OG_SSH_GIT_ENABLED | `true` | Enable or disable git operations (clone, pull, push) via SSH. (`true` or `false`) |
|
||||
| ssh.host | OG_SSH_HOST | `0.0.0.0` | The host on which the SSH server should bind. |
|
||||
| ssh.port | OG_SSH_PORT | `2222` | The port on which the SSH server should listen. |
|
||||
| ssh.external-domain | OG_SSH_EXTERNAL_DOMAIN | none | Public domain for the Git SSH connection, if it has to be different from the HTTP one. If not set, uses the URL from the request. |
|
||||
| ssh.keygen-executable | OG_SSH_KEYGEN_EXECUTABLE | `ssh-keygen` | Path to the SSH key generation executable. |
|
||||
| github.client-key | OG_GITHUB_CLIENT_KEY | none | The client key for the GitHub OAuth application. |
|
||||
| github.secret | OG_GITHUB_SECRET | none | The secret for the GitHub OAuth application. |
|
||||
| gitlab.client-key | OG_GITLAB_CLIENT_KEY | none | The client key for the GitLab OAuth application. |
|
||||
| gitlab.secret | OG_GITLAB_SECRET | none | The secret for the GitLab OAuth application. |
|
||||
| gitlab.url | OG_GITLAB_URL | `https://gitlab.com/` | The URL of the GitLab instance. |
|
||||
| gitlab.name | OG_GITLAB_NAME | `GitLab` | The name of the GitLab instance. It is displayed in the OAuth login button. |
|
||||
| gitea.client-key | OG_GITEA_CLIENT_KEY | none | The client key for the Gitea OAuth application. |
|
||||
| gitea.secret | OG_GITEA_SECRET | none | The secret for the Gitea OAuth application. |
|
||||
| gitea.url | OG_GITEA_URL | `https://gitea.com/` | The URL of the Gitea instance. |
|
||||
| gitea.name | OG_GITEA_NAME | `Gitea` | The name of the Gitea instance. It is displayed in the OAuth login button. |
|
||||
| oidc.provider-name | OG_OIDC_PROVIDER_NAME | none | The name of the OIDC provider |
|
||||
| oidc.client-key | OG_OIDC_CLIENT_KEY | none | The client key for the OpenID application. |
|
||||
| oidc.secret | OG_OIDC_SECRET | none | The secret for the OpenID application. |
|
||||
| oidc.discovery-url | OG_OIDC_DISCOVERY_URL | none | Discovery endpoint of the OpenID provider. |
|
||||
| ldap.url | OG_LDAP_URL | none | URL of the LDAP instance; if not set, LDAP authentication is disabled |
|
||||
| ldap.bind-dn | OG_LDAP_BIND_DN | none | Bind DN to authenticate against the LDAP. e.g: cn=read-only-admin,dc=example,dc=com |
|
||||
| ldap.bind-credentials | OG_LDAP_BIND_CREDENTIALS | none | The password for the Bind DN. |
|
||||
| ldap.search-base | OG_LDAP_SEARCH_BASE | none | The Base DN to start search from. e.g: ou=People,dc=example,dc=com |
|
||||
| ldap.search-filter | OG_LDAP_SEARCH_FILTER | none | The filter to search against (the format string %s will be replaced with the username). e.g: (uid=%s) |
|
||||
| custom.name | OG_CUSTOM_NAME | none | The name of your instance, to be displayed in the tab title |
|
||||
| custom.logo | OG_CUSTOM_LOGO | none | Path to an image, relative to $opengist-home/custom. |
|
||||
| custom.favicon | OG_CUSTOM_FAVICON | none | Path to an image, relative to $opengist-home/custom. |
|
||||
| custom.static-links | OG_CUSTOM_STATIC_LINK_#_(PATH,NAME) | none | Path and name to custom links, more info [here](custom-links.md). |
|
||||
|
||||
## Usage
|
||||
### Init Gists via Git
|
||||
Opengist allows you to create new snippets via Git over HTTP.
|
||||
|
||||
Simply init a new Git repository where your file(s) is/are located:
|
||||
|
||||
```shell
|
||||
git init
|
||||
git add .
|
||||
git commit -m "My cool snippet"
|
||||
```
|
||||
|
||||
Then add this Opengist special remote URL and push your changes:
|
||||
|
||||
```shell
|
||||
git remote add origin http://localhost:6157/init
|
||||
|
||||
git push -u origin master
|
||||
```
|
||||
|
||||
Log in with your Opengist account credentials, and your snippet will be created at the specified URL:
|
||||
|
||||
```shell
|
||||
Username for 'http://localhost:6157': thomas
|
||||
Password for 'http://thomas@localhost:6157':
|
||||
Enumerating objects: 3, done.
|
||||
Counting objects: 100% (3/3), done.
|
||||
Delta compression using up to 8 threads
|
||||
Compressing objects: 100% (2/2), done.
|
||||
Writing objects: 100% (3/3), 416 bytes | 416.00 KiB/s, done.
|
||||
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
|
||||
remote:
|
||||
remote: Your new repository has been created here: http://localhost:6157/thomas/6051e930f140429f9a2f3bb1fa101066
|
||||
remote:
|
||||
remote: If you want to keep working with your gist, you could set the remote URL via:
|
||||
remote: git remote set-url origin http://localhost:6157/thomas/6051e930f140429f9a2f3bb1fa101066
|
||||
remote:
|
||||
To http://localhost:6157/init
|
||||
* [new branch] master -> master
|
||||
```
|
||||
|
||||
### Embed a Gist to your webpage
|
||||
To embed a Gist to your webpage, you can add a script tag with the URL of your gist followed by `.js` to your HTML page:
|
||||
|
||||
```html
|
||||
<script src="http://opengist.url/user/gist-url.js"></script>
|
||||
|
||||
<!-- Dark mode: -->
|
||||
<script src="http://opengist.url/user/gist-url.js?dark"></script>
|
||||
```
|
||||
|
||||
### Retrieve Gist as JSON
|
||||
To retrieve a Gist as JSON, you can add `.json` to the end of the URL of your gist:
|
||||
|
||||
```shell
|
||||
curl http://opengist.url/thomas/my-gist.json | jq '.'
|
||||
```
|
||||
|
||||
It returns a JSON object with the following structure similar to this one:
|
||||
```json
|
||||
{
|
||||
"created_at": "2023-04-12T13:15:20+02:00",
|
||||
"description": "",
|
||||
"embed": {
|
||||
"css": "http://localhost:6157/assets/embed-94abc261.css",
|
||||
"html": "<div class=\"opengist-embed\" id=\"my-gist\">\n <div class=\"html \">\n \n <div class=\"rounded-md border-1 border-gray-100 dark:border-gray-800 overflow-auto mb-4\">\n <div class=\"border-b-1 border-gray-100 dark:border-gray-700 text-xs p-2 pl-4 bg-gray-50 dark:bg-gray-800 text-gray-400\">\n <a target=\"_blank\" href=\"http://localhost:6157/thomas/my-gist#file-hello-md\"><span class=\"font-bold text-gray-700 dark:text-gray-200\">hello.md</span> · 21 B · Markdown</a>\n <span class=\"float-right\"><a target=\"_blank\" href=\"http://localhost:6157\">Hosted via Opengist</a> · <span class=\"text-gray-700 dark:text-gray-200 font-bold\"><a target=\"_blank\" href=\"http://localhost:6157/thomas/my-gist/raw/HEAD/hello.md\">view raw</a></span></span>\n </div>\n \n \n \n <div class=\"chroma markdown markdown-body p-8\"><h1>Welcome to Opengist</h1>\n</div>\n \n\n </div>\n \n </div>\n</div>\n",
|
||||
"js": "http://localhost:6157/thomas/my-gist.js",
|
||||
"js_dark": "http://localhost:6157/thomas/my-gist.js?dark"
|
||||
},
|
||||
"files": [
|
||||
{
|
||||
"filename": "hello.md",
|
||||
"size": 21,
|
||||
"human_size": "21 B",
|
||||
"content": "# Welcome to Opengist",
|
||||
"truncated": false,
|
||||
"type": "Markdown"
|
||||
}
|
||||
],
|
||||
"id": "my-gist",
|
||||
"owner": "thomas",
|
||||
"title": "hello.md",
|
||||
"uuid": "8622b297bce54b408e36d546cef8019d",
|
||||
"visibility": "public"
|
||||
}
|
||||
```
|
||||
|
||||
### Push Options
|
||||
Opengist has support for a few [Git push options](https://git-scm.com/docs/git-push#Documentation/git-push.txt--oltoptiongt).
|
||||
|
||||
These options are passed to `git push` command and can be used to change the metadata of a gist.
|
||||
|
||||
#### Set URL
|
||||
```shell
|
||||
git push -o url=mygist # Will set the URL to https://opengist.example.com/user/mygist
|
||||
```
|
||||
|
||||
#### Change title
|
||||
```shell
|
||||
git push -o title=Gist123
|
||||
git push -o title="My Gist 123"
|
||||
```
|
||||
|
||||
#### Change description
|
||||
```shell
|
||||
git push -o description="This is my gist description"
|
||||
```
|
||||
|
||||
#### Change visibility
|
||||
```shell
|
||||
git push -o visibility=public
|
||||
git push -o visibility=unlisted
|
||||
git push -o visibility=private
|
||||
```
|
8
technology/applications/web/stump.md
Normal file
8
technology/applications/web/stump.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
obj: application
|
||||
website: https://www.stumpapp.dev
|
||||
repo: https://github.com/stumpapp/stump
|
||||
---
|
||||
|
||||
# Stump
|
||||
Stump is a free and open source comics, manga and digital book server with OPDS support.
|
74
technology/dev/Material Icons.md
Normal file
74
technology/dev/Material Icons.md
Normal file
|
@ -0,0 +1,74 @@
|
|||
---
|
||||
obj: concept
|
||||
website: https://fonts.google.com/icons
|
||||
repo: https://github.com/google/material-design-icons
|
||||
---
|
||||
|
||||
# Material Icons
|
||||
[Material Icons](https://fonts.google.com/icons) are a comprehensive set of visual symbols designed by Google. These icons follow the [Material Design](https://m3.material.io/) guidelines and are widely used across Android, web, and other platforms to provide a consistent, clean, and intuitive UI experience.
|
||||
|
||||
## Features
|
||||
* Over 2,000 icons
|
||||
* Available in multiple styles (Filled, Outlined, Rounded, Sharp, Two-tone)
|
||||
* Free and open-source under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0)
|
||||
* Easily customizable (size, color, weight)
|
||||
* Supported via web fonts, SVGs, and icon components
|
||||
|
||||
## Icon Styles
|
||||
| Style | Description |
|
||||
| -------- | ----------------------------------------- |
|
||||
| Filled | Default solid icons |
|
||||
| Outlined | Icons with a thin, outlined design |
|
||||
| Rounded | Icons with rounded corners |
|
||||
| Sharp | Icons with sharp, angular edges |
|
||||
| Two-tone | Icons with dual-tone for visual hierarchy |
|
||||
|
||||
## Installation
|
||||
|
||||
### Web Font
|
||||
Add the following `<link>` tag to your HTML `<head>`:
|
||||
|
||||
```html
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||
```
|
||||
|
||||
Then use an icon like this:
|
||||
```html
|
||||
<i class="material-icons">home</i>
|
||||
```
|
||||
|
||||
To use other styles (e.g., Outlined, Rounded), change the font family:
|
||||
```html
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons+Outlined" rel="stylesheet">
|
||||
```
|
||||
|
||||
Use it like:
|
||||
```html
|
||||
<i class="material-icons-outlined">home</i>
|
||||
```
|
||||
|
||||
## SVG
|
||||
You can download individual icons as SVGs from [Material Icons](https://fonts.google.com/icons) or use them programmatically.
|
||||
|
||||
Example:
|
||||
```html
|
||||
<img src="https://fonts.gstatic.com/s/i/materialicons/home/v1/24px.svg" alt="home icon" />
|
||||
```
|
||||
|
||||
## Customization
|
||||
|
||||
### Size
|
||||
Use CSS to change the size:
|
||||
```html
|
||||
<i class="material-icons" style="font-size: 36px;">home</i>
|
||||
```
|
||||
|
||||
Or use utility classes in frameworks like Tailwind:
|
||||
```html
|
||||
<i class="material-icons text-4xl">home</i>
|
||||
```
|
||||
|
||||
### Color
|
||||
```html
|
||||
<i class="material-icons" style="color: #f44336;">home</i>
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue