:flags: A curated collection of all country flags in SVG — plus the CSS for easier integration
12,367
stars
1,165
commits
HTML
primary language
Jul 10, 2026
updated
A curated collection of all country flags in SVG — plus the CSS for easier integration. See the demo.
You can either download the whole project as is or install it via npm or Yarn:
npm install flag-icons
# or
yarn add flag-icons
First, you need to import css:
import "/node_modules/flag-icons/css/flag-icons.min.css";
or use CDN:
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.3.2/css/flag-icons.min.css"
/>
or use SASS:
@use "node_modules/flag-icons/sass/flag-icons";
// or with custom configuration
@use "node_modules/flag-icons/sass/flag-icons" with (
// Override path to flags directory
$flag-icons-path: "node_modules/flag-icons/flags",
// Include only specific country flags
$flag-icons-included-countries: ("gr", "de", "gb")
);
You can find all available variables in sass/_variables.scss.
For using the flags inline with text add the classes .fi and .fi-xx (where xx is the ISO 3166-1-alpha-2 code of a country) to an empty <span>. If you want to have a squared version flag then add the class fis as well. Example:
<span class="fi fi-gr"></span> <span class="fi fi-gr fis"></span>
You could also apply this to any element, but in that case you'll have to use the fib instead of fi and you're set. This will add the correct background with the following CSS properties:
background-size: contain;
background-position: 50%;
background-repeat: no-repeat;
Which means that the flag is just going to appear in the middle of an element, so you will have to set manually the correct size of 4 by 3 ratio or if it's squared add also the flag-icon-squared class.
Run the yarn to install the dependencies after cloning the project and you'll be able to:
To build *.scss files
$ yarn build
To serve it on localhost:8000
$ yarn start
To have only specific countries in the css file, remove the ones that you don't need from the _flag-icons-list.scss file and build it again.
flag-icons name on npm.(top 30 of 87)
611 commits
256 commits
109 commits
27 commits
HTML
44.6%
CSS
42.7%
JavaScript
5.9%
SCSS
4.2%
Python
2.4%
:flags: A curated collection of all country flags in SVG — plus the CSS for easier integration
12,367
stars
1,165
commits
HTML
primary language
Jul 10, 2026
updated
A curated collection of all country flags in SVG — plus the CSS for easier integration. See the demo.
You can either download the whole project as is or install it via npm or Yarn:
npm install flag-icons
# or
yarn add flag-icons
First, you need to import css:
import "/node_modules/flag-icons/css/flag-icons.min.css";
or use CDN:
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.3.2/css/flag-icons.min.css"
/>
or use SASS:
@use "node_modules/flag-icons/sass/flag-icons";
// or with custom configuration
@use "node_modules/flag-icons/sass/flag-icons" with (
// Override path to flags directory
$flag-icons-path: "node_modules/flag-icons/flags",
// Include only specific country flags
$flag-icons-included-countries: ("gr", "de", "gb")
);
You can find all available variables in sass/_variables.scss.
For using the flags inline with text add the classes .fi and .fi-xx (where xx is the ISO 3166-1-alpha-2 code of a country) to an empty <span>. If you want to have a squared version flag then add the class fis as well. Example:
<span class="fi fi-gr"></span> <span class="fi fi-gr fis"></span>
You could also apply this to any element, but in that case you'll have to use the fib instead of fi and you're set. This will add the correct background with the following CSS properties:
background-size: contain;
background-position: 50%;
background-repeat: no-repeat;
Which means that the flag is just going to appear in the middle of an element, so you will have to set manually the correct size of 4 by 3 ratio or if it's squared add also the flag-icon-squared class.
Run the yarn to install the dependencies after cloning the project and you'll be able to:
To build *.scss files
$ yarn build
To serve it on localhost:8000
$ yarn start
To have only specific countries in the css file, remove the ones that you don't need from the _flag-icons-list.scss file and build it again.
flag-icons name on npm.(top 30 of 87)
611 commits
256 commits
109 commits
27 commits
HTML
44.6%
CSS
42.7%
JavaScript
5.9%
SCSS
4.2%
Python
2.4%