Giter Club home page Giter Club logo

icons's Introduction

Bootstrap logo

Bootstrap Icons

Official open source SVG icon library for Bootstrap with over 2,000 icons.
Explore Bootstrap Icons »

Bootstrap · Themes · Blog

Bootstrap Icons preview

Install

Bootstrap Icons are packaged up and published to npm. We only include the processed SVGs in this package—it's up to you and your team to implement. Read our docs for usage instructions.

npm i bootstrap-icons

For those using Packagist, you can also install Bootstrap Icons via Composer:

composer require twbs/bootstrap-icons

Also available in Figma.

Usage

Depending on your setup, you can include Bootstrap Icons in a handful of ways.

  • Copy-paste SVGs as embedded HTML
  • Reference via <img> element
  • Use the SVG sprite
  • Include via CSS

See the docs for more information.

Development

Build Status npm version

Clone the repo, install dependencies, and start the Hugo server locally.

git clone https://github.com/twbs/icons/
cd icons
npm i
npm start

Then open http://localhost:4000 in your browser.

npm scripts

Here are some key scripts you'll use during development. Be sure to look to our package.json or npm run output for a complete list of scripts.

Script Description
start Alias for running docs-serve
docs-serve Starts a local Hugo server
pages Generates permalink pages for each icon with template Markdown
icons Processes and optimizes SVGs in icons directory, generates fonts and sprite

Adding SVGs

Icons are typically only added by @mdo, but exceptions can be made. New glyphs are designed in Figma first on a 16x16px grid, then exported as flattened SVGs with fill (no stroke). Once a new SVG icon has been added to the icons directory, we use an npm script to:

  1. Optimize our SVGs with SVGO.
  2. Modify the SVGs source code, removing all attributes before setting new attributes and values in our preferred order.

Use npm run icons to run the script, run npm run pages to build permalink pages, complete those pages, and, finally, commit the results in a new branch for updating.

Warning: Please exclude any auto-generated files, like font/** and bootstrap-icons.svg from your branch because they cause conflicts, and we generally update the dist files before a release.

Publishing

Documentation is published automatically when a new Git tag is published. See our GitHub Actions and package.json for more information.

License

MIT

Author

@mdo

icons's People

Contributors

aepyornis avatar anvme avatar bastienmoulia avatar coliff avatar dependabot-preview[bot] avatar dependabot[bot] avatar ffes avatar gstkeithdisarno avatar inwardmovement avatar johann-s avatar jorimvanhove avatar julien-deramond avatar korki43 avatar leafac avatar mdo avatar patrickhlauke avatar peterkappus avatar plr108 avatar proxy-99 avatar rettinghaus avatar ryanberliner avatar saiprasad16 avatar sam-neale avatar shaunroselt avatar stefan-korn avatar tjkuson avatar vanillajonathan avatar xeevis avatar xhmikosr avatar zhangchenglin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

icons's Issues

Download icon

Could you add some download icon please? E.g.arrow down with line or box under.

[icon request] file presentation

In addition to "file text" and "file spreadsheet" there should be one for presentations. It could feature a diagram. 📈📉📊

Gears are cutoff

Wide gear icons have a wider illustration than viewBox dimensions.

How are we supposed to handle the Elliptical Arc commands?

I have an open source SVG renderer which really struggles to render these. Your elliptical arc commands by looks of things do not follow the SVG spec, elliptical arcs should contain 7 parameters as its command, these icons vary from 5-10, These only seem to render inside browsers and Sketch, Illustrator, IconJar all cant render these correctly.

Command like : a8 8 0 100-16 8 8 0 000 16 is completely invalid according to the SVG spec.

How is this supposed to be parsed? is it 8 8 0 100 -16 8 0 then 0 0 0 16? But then 16 would have to be a 1 or a 0 for the sweeping arc.

Cheers.

Import Icons in Rails 6.0

After several unsuccessful attempts, I try to get an answer here. :D

I try to use the icon library together with Bootstrap and Rails 6.0. Bootstrap is running, but I just can't get it to load the SVG icons.

I think I have to load them in Rails 6.0 in the application.js/scss somehow. Can anyone help me, or am I completely on the wrong track?

Suggestion to Make SVG color changes simple

Thank you for creating these icons. One suggestion I have would be to add some support on shifting colors of the svgs with the image tag. Either using CSS color filters or js to change the color.

Here is an example - https://blog.union.io/code/2017/08/10/img-svg-fill/

For beginners, svg's are confusing with all of the coordinates. So I think it would be nice to make svg's work the same way as jpegs and pngs... with the additional super powers of scaling and color changing.

Here is a codepen experimenting with filters - https://codepen.io/JacobLett/pen/LYYwQjz

Inconsistent names

The following icons seem to be named inconsistently from their peers:

  • arrow bar bottom (should be down)
  • shouldn’t brightness fill {high,low} have fill at the end?
  • skip {end,backward} fill icons names are swapped (Duplicate #84)
  • shouldn’t book half fill just be book half?

Cheers!

Add copy to clipboard

@XhmikosR I tried to bring this over from Bootstrap proper and it ended up causing tons of JS errors. I'm guessing I was missing some linting support files or something. Might ping you in a PR on this later.

[bug] `skip-*` icon names/svgs are mixed up, and also have hardcoded stroke color of black

The skip-* Icons are slightly mixed up name-wise:

image

Also, the skip-*-fill SVGs have a hardcoded stroke color or #000 which always shows as black, regardless of current font color. Perhaps this should be currentColor instead of #000 (or set stroke="currentColor" on the <svg> root element.

<svg class="bi bi-skip-end-fill" width="1em" height="1em" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
  <!-- this shoud be `currentColor` not `#000` -->
  <path stroke="#000" stroke-linecap="round" d="M2.5 6v8"/>
  <path d="M2.904 10.697l6.363 3.692c.54.313 1.233-.066 1.233-.697V6.308c0-.63-.693-1.01-1.233-.696L2.904 9.304a.802.802 0 000 1.393z"/>
  <path d="M10.404 10.697l6.363 3.692c.54.313 1.233-.066 1.233-.697V6.308c0-.63-.692-1.01-1.233-.696l-6.363 3.692a.802.802 0 000 1.393z"/>
</svg>

cc/ @mdo

TODO

Blocking

  • Use the upstream favicons
  • Don't use the master dist CSS. This can break any time
  • Move to Hugo (includes removing symlinks and timestamped CSS)
  • Add code snippet and examples from Bootstrap for usage section
  • Social icons
  • page description
  • social meta
  • Add license to the repo
  • See if we need to drop width/height. With these the icons aren't responsive? Icons aren't responsive by design, but they can easily be modified for different dimensions by changing those attributes or custom CSS (like our docs). – @mdo
  • Verify if we need focusable="false" and role="img" once and for all and adapt the svgo config to take this into consideration
  • Stop inlining all icons; this results in huge page size/DOM size This is a feature I want to keep. – @mdo
  • Add testing
    • HTML validation
    • broken links
    • CI

Non-blocking

  • Add 404 page
  • Move to Actions for automated releases on tag
  • Move the hardcoded SVGs to includes
  • Do we need the search button? Seems useless since filtering happens when typing
  • Move list.js in the repo

Icon vertical alignment and size issues

It appears that the icons, when paced inside dropdowns and butons, is slightly off vertically (baseline is not quite lined up with the font), as well as when icons are placed inline with text.

A fix we have implemented is as follows:

.bi {
  vertical-align: -0.125em;
  margin-bottom: calc(-0.125em / 2);
}

// Make icons slightly larger (aesthetically) in input group prepend/append
.input-group {
  .input-group-text {
    .bi {
      transform: scale(1.5);
    }
  }
}

// Make icons slightly larger (aesthetically) in buttons and dropdowns
.btn,
.dropdown {
   .bi {
    transform: scale(1.5);
    // reset the bottom margin from above
    margin-bottom: 0;
  }
}

Before

image

image

image

image

After

image

image

image

image

Copy to clipboard

Add copy to clipboard for SVG code in the docs (clicking the icon should do it)

[icon request] share icons

Would be nice to have an icon for sharing, similar to:

image

and possibly a fill version with the circles filled

Provide font-family format

The "You can also use the SVG within your CSS" use case doesn't allow for color customization without touching the SVG fill value. We should be able to dynamically load the untouched source SVGs and customize them via css only (like when you import Bootstrap without modifying it and properly override variables), which would be possible via a font-family approach (allowing the use of Bootstrap color variables for proper icons theming). Is this in the pipeline?

Fix Hugo warning/leverage Hugo layout hierarchy order

Building sites … WARN 2020/03/19 20:55:58 found no layout file for "HTML" for kind "section": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.

and see if we can remove the layout from icon content files and leverage Hugo's hierarchy lookup order

[icon request] Log in/out icons

We currently use Bootstrap 3 with Glyphicons but want to update to Bootstrap 4 (and 5 once it comes out) and like the style of the icon set. However there are not Log in/out icons anymore like glyphicons glyphicon-log-in or fontawesomes sign-in-alt (as well as corresponding logout icons).

`*-half` icons should have consistent filled side

All of the fill'ed versions of icons should be consistently filled on the left side.

Some filled Icons have the right side filled, where as the majority are left filled (ie. diamond, circle, triangle and square should be left filled)

Perhaps all *-half fill icons should be filled on the left, and maybe have an alt *-half-right version filled on the right?

Use-case example: ratings widget which shows #.5 rating. LTR would use the default half icon (*-half), while RTL could use the *-fill-right version). Typically users would want the star icons, but may use other icons for this purpose.

/cc @mdo

(context: working on a rating component that allows users to select their base icon, and noticed the inconsistent half side being filled)

Remove spacing inside SVGs

So that we can properly set spacing around SVGs with CSS (otherwise we have to figure out the spacing inside the SVGs and take it into account when applying margins/paddings).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.