├── .gitignore ├── svg ├── sample.png ├── db.svg ├── cimb.svg ├── smbc.svg ├── lhb.svg ├── jpm.svg ├── hsbc.svg ├── mufg.svg ├── uob.svg ├── pp.svg ├── bbl.svg ├── tbank.svg ├── citi.svg ├── ibank.svg ├── mb.svg ├── boa.svg ├── kk.svg ├── scb.svg ├── tmb.svg ├── rbs.svg ├── icbc.svg ├── baac.svg ├── ttb.svg ├── sc.svg ├── ghb.svg ├── cacib.svg ├── mega.svg ├── bay.svg ├── tcrb.svg ├── bnp.svg ├── tisco.svg ├── ktb.svg ├── kbank.svg ├── tmn.svg └── gsb.svg ├── tsconfig.json ├── package.json ├── LICENSE ├── src └── index.ts ├── README.md ├── release.sh ├── yarn.lock ├── banks.css └── banks.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | yarn-error.log 3 | dist -------------------------------------------------------------------------------- /svg/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AomDEV/css-finances/HEAD/svg/sample.png -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "resolveJsonModule": true, 4 | "sourceMap": true, 5 | "declaration": true, 6 | "outDir": "dist", 7 | }, 8 | "include": ["./src/**/*"] 9 | } -------------------------------------------------------------------------------- /svg/db.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /svg/cimb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /svg/smbc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "css-finances", 3 | "version": "1.0.0", 4 | "description": "Thai Banks icon", 5 | "main": "release/src/index.js", 6 | "scripts": { 7 | "build": "tsc -p ." 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/AomDEV/css-finances.git" 12 | }, 13 | "keywords": [ 14 | "css", 15 | "finances", 16 | "bank", 17 | "icon", 18 | "payment" 19 | ], 20 | "author": "Aom DeFi ", 21 | "license": "MIT", 22 | "bugs": { 23 | "url": "https://github.com/AomDEV/css-finances/issues" 24 | }, 25 | "homepage": "https://github.com/AomDEV/css-finances#readme", 26 | "devDependencies": { 27 | "@types/node": "^22.5.0", 28 | "@types/sharp": "^0.32.0", 29 | "typescript": "^5.5.4" 30 | }, 31 | "dependencies": { 32 | "sharp": "^0.33.5" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /svg/lhb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /svg/jpm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /svg/hsbc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /svg/mufg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /svg/uob.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 11 | 12 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Aom Siriwat 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /svg/pp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /svg/bbl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 13 | 14 | -------------------------------------------------------------------------------- /svg/tbank.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 12 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /svg/citi.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 10 | 11 | 12 | 15 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /svg/ibank.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 15 | 16 | -------------------------------------------------------------------------------- /svg/mb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 10 | 11 | 12 | 15 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /svg/boa.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | 13 | 15 | 17 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /svg/kk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /svg/scb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 16 | 17 | -------------------------------------------------------------------------------- /svg/tmb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 11 | 12 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /svg/rbs.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 10 | 13 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /svg/icbc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 17 | 18 | -------------------------------------------------------------------------------- /svg/baac.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /svg/ttb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | Group 4 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /svg/sc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | 14 | 16 | 18 | 21 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { join } from "path"; 2 | import * as dataJson from "../banks.json"; 3 | import { readFile } from "fs/promises"; 4 | import * as sharp from "sharp"; 5 | 6 | export type Icon = keyof typeof dataJson.th | (string & {}); 7 | export type Dataset = Record; 14 | export function getDataset() { 15 | return dataJson.th; 16 | } 17 | export class IconHelper { 18 | private constructor() { } 19 | 20 | public static getFilePath(icon: Icon) { 21 | return join(__dirname, "..", "svg", `${String(icon)}.svg`); 22 | } 23 | 24 | public static getRawBuffer(icon: Icon) { 25 | if (!this.hasIcon(icon)) return null; 26 | return readFile(this.getFilePath(icon)) 27 | } 28 | 29 | public static hasIcon (icon: Icon) { 30 | const keys = Object.keys(getDataset()); 31 | if (!keys.find(key => key === icon)) return false; 32 | return true; 33 | } 34 | 35 | public static async getBuffer(icon: Icon, options?: { 36 | readonly width?: number; 37 | readonly height?: number; 38 | readonly format?: keyof sharp.FormatEnum; 39 | readonly buffer?: Buffer; 40 | }) { 41 | if (!this.hasIcon(icon)) return null; 42 | 43 | const width = Number(options?.width || 256) 44 | const height = Number(options?.height || 256) 45 | 46 | const svgRawBuffer = options.buffer ? options.buffer : await this.getRawBuffer(icon); 47 | const iconBuffer = await sharp(svgRawBuffer).resize(Number(width / 2)).toBuffer(); 48 | const canvas = sharp({ 49 | create: { 50 | width, 51 | height, 52 | channels: 4, 53 | background: getDataset()[icon].color 54 | } 55 | }); 56 | canvas.composite([{ 57 | input: iconBuffer, 58 | blend: "over", 59 | }]) 60 | 61 | return canvas.toFormat(options?.format || "png").toBuffer(); 62 | } 63 | } -------------------------------------------------------------------------------- /svg/ghb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /svg/cacib.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 10 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /svg/mega.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 22 | 23 | 25 | 26 | 27 | 28 | 29 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /svg/bay.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 10 | 12 | 14 | 16 | 19 | 22 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /svg/tcrb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 11 | 12 | 14 | 16 | 18 | 20 | 22 | 24 | 26 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /svg/bnp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 23 | 24 | -------------------------------------------------------------------------------- /svg/tisco.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 11 | 13 | 18 | 22 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Finances Icon 2 | [!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/aomdev)
3 | Special thanks Omise 4 | 5 | ## UI 6 | ![UI](https://i.imgur.com/dbQFODo.png) 7 | You can check the icon from [Vercel](https://vercel-thai-banks-icon.vercel.app/) 8 | 9 | ## Usage 10 | Usage: 11 | ```html 12 | 13 | ``` 14 | 15 | ## Bank List 16 | ![Bank List](https://i.imgur.com/lZnWsLN.png) 17 | - **bank-bbl** - Bangkok Bank 18 | - **bank-kbank** - Kasikornbank 19 | - **bank-rbs** - Royal Bank of Scotland 20 | - **bank-ktb** - Krungthai Bank 21 | - **bank-jpm** - J.P. Morgan 22 | - **bank-mufg** - Bank of Tokyo-Mitsubishi UFJ 23 | - **bank-tmb** - TMB Bank 24 | - **bank-scb** - Siam Commercial Bank 25 | - **bank-citi** - Citibank 26 | - **bank-smbc** - Sumitomo Mitsui Banking Corporation 27 | - **bank-sc** - Standard Chartered (Thai) 28 | - **bank-cimb** - CIMB Thai Bank 29 | - **bank-uob** - United Overseas Bank (Thai) 30 | - **bank-bay** - Bank of Ayudhya (Krungsri) 31 | - **bank-mega** - Mega International Commercial Bank 32 | - **bank-boa** - Bank of America 33 | - **bank-cacib** - Crédit Agricole 34 | - **bank-gsb** - Government Savings Bank 35 | - **bank-hsbc** - Hongkong and Shanghai Banking Corporation 36 | - **bank-db** - Deutsche Bank 37 | - **bank-ghb** - Government Housing Bank 38 | - **bank-baac** - Bank for Agriculture and Agricultural Cooperatives 39 | - **bank-mb** - Mizuho Bank 40 | - **bank-bnp** - BNP Paribas 41 | - **bank-tbank** - Thanachart Bank 42 | - **bank-ibank** - Islamic Bank of Thailand 43 | - **bank-tisco** - Tisco Bank 44 | - **bank-kk** - Kiatnakin Bank 45 | - **bank-icbc** - Industrial and Commercial Bank of China (Thai) 46 | - **bank-tcrb** - Thai Credit Retail Bank 47 | - **bank-lhb** - Land and Houses Bank 48 | - **bank-tmn** - TrueMoney Wallet 49 | - **bank-pp** - PromptPay 50 | 51 | ### Example 52 | Basic Use: 53 | ```html 54 | 55 | ``` 56 | with Size: 57 | ```html 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | ``` 66 | with Shape: 67 | ```html 68 | 69 | 70 | ``` 71 | with Shadow 72 | ```html 73 | 74 | ``` 75 | Perfect combination: 76 | ```html 77 | 78 | ``` 79 | -------------------------------------------------------------------------------- /svg/ktb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Ensure the script stops on the first error 4 | set -e 5 | 6 | # Function to check if jq is installed 7 | check_jq_installed() { 8 | if ! command -v jq &> /dev/null; then 9 | echo "jq is not installed. Installing jq..." 10 | if [[ "$OSTYPE" == "linux-gnu"* ]]; then 11 | sudo apt-get update && sudo apt-get install -y jq 12 | elif [[ "$OSTYPE" == "darwin"* ]]; then 13 | brew install jq 14 | else 15 | echo "Unsupported OS. Please install jq manually." 16 | exit 1 17 | fi 18 | else 19 | echo "jq is already installed." 20 | fi 21 | } 22 | 23 | # Function to check for pending commits in the workspace 24 | check_pending_commits() { 25 | if [[ -n $(git status --porcelain) ]]; then 26 | echo "There are uncommitted changes in the workspace. Please commit or stash them before proceeding." 27 | exit 1 28 | fi 29 | } 30 | 31 | # Function to set the new version in package.json 32 | set_new_version() { 33 | echo "Enter the new version:" 34 | read NEW_VERSION 35 | 36 | # Validate the version format (simple regex for semver) 37 | if [[ ! $NEW_VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then 38 | echo "Invalid version format. Please use semantic versioning (e.g., 1.2.3)." 39 | exit 1 40 | fi 41 | 42 | # Update the version in package.json 43 | jq --arg new_version "$NEW_VERSION" '.version = $new_version' package.json > temp.json && mv temp.json package.json 44 | echo "Updated version in package.json to $NEW_VERSION." 45 | } 46 | 47 | # Function to check if node_modules exists 48 | check_node_modules() { 49 | echo "Installing dependencies..." 50 | if [ -d "node_modules" ]; then 51 | rm -rf node_modules/ dist/ 52 | fi 53 | yarn 54 | } 55 | 56 | # Run jq check 57 | check_jq_installed 58 | 59 | # Check for pending commits 60 | check_pending_commits 61 | 62 | # Define branch names 63 | RELEASE_BRANCH="release" 64 | MAIN_BRANCH="main" 65 | 66 | # Fetch all branches 67 | git fetch 68 | 69 | # Check if the release branch exists 70 | if git show-ref --verify --quiet refs/heads/$RELEASE_BRANCH; then 71 | echo "Branch '$RELEASE_BRANCH' already exists." 72 | else 73 | echo "Creating new branch '$RELEASE_BRANCH'." 74 | git checkout -b $RELEASE_BRANCH 75 | git push -u origin $RELEASE_BRANCH 76 | fi 77 | git checkout $MAIN_BRANCH 78 | 79 | # Set new version in package.json 80 | set_new_version 81 | 82 | # Get the new version number from package.json 83 | VERSION=$(jq -r '.version' package.json) 84 | 85 | # Commit and push the version bump 86 | git add package.json 87 | git commit -m "release: v$VERSION" 88 | git push origin $MAIN_BRANCH 89 | 90 | # Merge the main branch into the release branch with the new version in the commit message 91 | git checkout $RELEASE_BRANCH 92 | git merge $MAIN_BRANCH --strategy-option theirs --no-ff -m "Merge branch '$MAIN_BRANCH' into '$RELEASE_BRANCH' - v$VERSION" 93 | 94 | # Check for node_modules and install if not found 95 | check_node_modules 96 | 97 | # Run the build process 98 | yarn build 99 | 100 | # Remove the 'src' folder 101 | rm -rf src tsconfig.json 102 | 103 | # Check 'release' folder and remove folder 104 | if [ -d "release" ]; then 105 | rm -rf release 106 | fi 107 | 108 | # Create directory 109 | mkdir release 110 | 111 | # Move the 'dist' folder to 'release' directory 112 | mv dist/* release/ 113 | 114 | # Commit all changes with the version in the commit message 115 | git add . 116 | git commit -m "Release v$VERSION" 117 | 118 | # Push the changes to the remote repository 119 | git push origin $RELEASE_BRANCH 120 | 121 | # Switch back to the main branch 122 | git checkout $MAIN_BRANCH 123 | 124 | echo "Release process completed successfully." 125 | -------------------------------------------------------------------------------- /svg/kbank.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 14 | 18 | 23 | 28 | 33 | 37 | 38 | 40 | 41 | 42 | 44 | 47 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@img/sharp-darwin-arm64@0.33.5": 6 | version "0.33.5" 7 | resolved "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz" 8 | integrity sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ== 9 | optionalDependencies: 10 | "@img/sharp-libvips-darwin-arm64" "1.0.4" 11 | 12 | "@img/sharp-libvips-darwin-arm64@1.0.4": 13 | version "1.0.4" 14 | resolved "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz" 15 | integrity sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg== 16 | 17 | "@types/node@^22.5.0": 18 | version "22.5.0" 19 | resolved "https://registry.npmjs.org/@types/node/-/node-22.5.0.tgz" 20 | integrity sha512-DkFrJOe+rfdHTqqMg0bSNlGlQ85hSoh2TPzZyhHsXnMtligRWpxUySiyw8FY14ITt24HVCiQPWxS3KO/QlGmWg== 21 | dependencies: 22 | undici-types "~6.19.2" 23 | 24 | "@types/sharp@^0.32.0": 25 | version "0.32.0" 26 | resolved "https://registry.npmjs.org/@types/sharp/-/sharp-0.32.0.tgz" 27 | integrity sha512-OOi3kL+FZDnPhVzsfD37J88FNeZh6gQsGcLc95NbeURRGvmSjeXiDcyWzF2o3yh/gQAUn2uhh/e+CPCa5nwAxw== 28 | dependencies: 29 | sharp "*" 30 | 31 | color-convert@^2.0.1: 32 | version "2.0.1" 33 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" 34 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 35 | dependencies: 36 | color-name "~1.1.4" 37 | 38 | color-name@^1.0.0, color-name@~1.1.4: 39 | version "1.1.4" 40 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" 41 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 42 | 43 | color-string@^1.9.0: 44 | version "1.9.1" 45 | resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" 46 | integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== 47 | dependencies: 48 | color-name "^1.0.0" 49 | simple-swizzle "^0.2.2" 50 | 51 | color@^4.2.3: 52 | version "4.2.3" 53 | resolved "https://registry.npmjs.org/color/-/color-4.2.3.tgz" 54 | integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== 55 | dependencies: 56 | color-convert "^2.0.1" 57 | color-string "^1.9.0" 58 | 59 | detect-libc@^2.0.3: 60 | version "2.0.3" 61 | resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz" 62 | integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== 63 | 64 | is-arrayish@^0.3.1: 65 | version "0.3.2" 66 | resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" 67 | integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== 68 | 69 | semver@^7.6.3: 70 | version "7.6.3" 71 | resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" 72 | integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== 73 | 74 | sharp@*, sharp@^0.33.5: 75 | version "0.33.5" 76 | resolved "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz" 77 | integrity sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw== 78 | dependencies: 79 | color "^4.2.3" 80 | detect-libc "^2.0.3" 81 | semver "^7.6.3" 82 | optionalDependencies: 83 | "@img/sharp-darwin-arm64" "0.33.5" 84 | "@img/sharp-darwin-x64" "0.33.5" 85 | "@img/sharp-libvips-darwin-arm64" "1.0.4" 86 | "@img/sharp-libvips-darwin-x64" "1.0.4" 87 | "@img/sharp-libvips-linux-arm" "1.0.5" 88 | "@img/sharp-libvips-linux-arm64" "1.0.4" 89 | "@img/sharp-libvips-linux-s390x" "1.0.4" 90 | "@img/sharp-libvips-linux-x64" "1.0.4" 91 | "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" 92 | "@img/sharp-libvips-linuxmusl-x64" "1.0.4" 93 | "@img/sharp-linux-arm" "0.33.5" 94 | "@img/sharp-linux-arm64" "0.33.5" 95 | "@img/sharp-linux-s390x" "0.33.5" 96 | "@img/sharp-linux-x64" "0.33.5" 97 | "@img/sharp-linuxmusl-arm64" "0.33.5" 98 | "@img/sharp-linuxmusl-x64" "0.33.5" 99 | "@img/sharp-wasm32" "0.33.5" 100 | "@img/sharp-win32-ia32" "0.33.5" 101 | "@img/sharp-win32-x64" "0.33.5" 102 | 103 | simple-swizzle@^0.2.2: 104 | version "0.2.2" 105 | resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" 106 | integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== 107 | dependencies: 108 | is-arrayish "^0.3.1" 109 | 110 | typescript@^5.5.4: 111 | version "5.5.4" 112 | resolved "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz" 113 | integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== 114 | 115 | undici-types@~6.19.2: 116 | version "6.19.8" 117 | resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz" 118 | integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== 119 | -------------------------------------------------------------------------------- /banks.css: -------------------------------------------------------------------------------- 1 | /****************************************************/ 2 | /** Author: @AOM **/ 3 | /** Github: https://github.com/AomDEV/css-finances **/ 4 | /****************************************************/ 5 | 6 | i.bank{ 7 | display: inline-block; 8 | border-radius:20%; 9 | background-color:grey; 10 | vertical-align: middle; 11 | width: 14px; 12 | height: 14px; 13 | padding: 0.1em; 14 | background-repeat: no-repeat; 15 | background-size: 75%; 16 | background-position: center; 17 | background-origin: content-box; 18 | overflow:hidden; 19 | vertical-align: -0.23em; 20 | } 21 | i.bank.round{ 22 | border-radius: 50%; 23 | } 24 | i.bank.shadow{ 25 | box-shadow: 0px 0px 5px grey; 26 | } 27 | i.bank.huge{ 28 | width: 64px; 29 | height: 64px; 30 | } 31 | h1>i.bank,i.bank.xxxl{ 32 | width: 32px; 33 | height: 32px; 34 | } 35 | h2>i.bank,i.bank.xxl{ 36 | width: 22px; 37 | height: 22px; 38 | } 39 | h3>i.bank,i.bank.xl{ 40 | width: 18px; 41 | height: 18px; 42 | } 43 | h4>i.bank,i.bank.l{ 44 | width: 16px; 45 | height: 16px; 46 | } 47 | h5>i.bank,i.bank.s{ 48 | width: 12px; 49 | height: 12px; 50 | } 51 | h6>i.bank,i.bank.xs{ 52 | width: 10px; 53 | height: 10px; 54 | } 55 | i.credit{ /**@AOM / https://github.com/AomDEV/css-finances **/ } 56 | i.bank.bank-bbl{ 57 | background-color: #1e4598; 58 | background-image: url('svg/bbl.svg'); 59 | } 60 | i.bank.bank-kbank{ 61 | background-color: #138f2d; 62 | background-image: url('svg/kbank.svg'); 63 | } 64 | i.bank.bank-rbs{ 65 | background-color: #032952; 66 | background-image: url('svg/rbs.svg'); 67 | } 68 | i.bank.bank-ktb{ 69 | background-color: #1ba5e1; 70 | background-image: url('svg/ktb.svg'); 71 | } 72 | i.bank.bank-jpm{ 73 | background-color: #321c10; 74 | background-image: url('svg/jpm.svg'); 75 | } 76 | i.bank.bank-mufg{ 77 | background-color: #d61323; 78 | background-image: url('svg/mufg.svg'); 79 | } 80 | i.bank.bank-tmb{ 81 | background-color: #1279be; 82 | background-image: url('svg/tmb.svg'); 83 | } 84 | i.bank.bank-scb{ 85 | background-color: #4e2e7f; 86 | background-image: url('svg/scb.svg'); 87 | } 88 | i.bank.bank-citi{ 89 | background-color: #1583c7; 90 | background-image: url('svg/citi.svg'); 91 | } 92 | i.bank.bank-smbc{ 93 | background-color: #a0d235; 94 | background-image: url('svg/smbc.svg'); 95 | } 96 | i.bank.bank-sc{ 97 | background-color: #0f6ea1; 98 | background-image: url('svg/sc.svg'); 99 | } 100 | i.bank.bank-cimb{ 101 | background-color: #7e2f36; 102 | background-image: url('svg/cimb.svg'); 103 | } 104 | i.bank.bank-uob{ 105 | background-color: #0b3979; 106 | background-image: url('svg/uob.svg'); 107 | } 108 | i.bank.bank-uob{ 109 | background-color: #0b3979; 110 | background-image: url('svg/uob.svg'); 111 | } 112 | i.bank.bank-bay{ 113 | background-color: #fec43b; 114 | background-image: url('svg/bay.svg'); 115 | } 116 | i.bank.bank-mega{ 117 | background-color: #815e3b; 118 | background-image: url('svg/mega.svg'); 119 | } 120 | i.bank.bank-boa{ 121 | background-color: #e11e3c; 122 | background-image: url('svg/boa.svg'); 123 | } 124 | i.bank.bank-cacib{ 125 | background-color: #0e765b; 126 | background-image: url('svg/cacib.svg'); 127 | } 128 | i.bank.bank-gsb{ 129 | background-color: #eb198d; 130 | background-image: url('svg/gsb.svg'); 131 | } 132 | i.bank.bank-hsbc{ 133 | background-color: #fd0d1b; 134 | background-image: url('svg/hsbc.svg'); 135 | } 136 | i.bank.bank-db{ 137 | background-color: #0522a5; 138 | background-image: url('svg/db.svg'); 139 | } 140 | i.bank.bank-ghb{ 141 | background-color: #f57d23; 142 | background-image: url('svg/ghb.svg'); 143 | } 144 | i.bank.bank-baac{ 145 | background-color: #4b9b1d; 146 | background-image: url('svg/baac.svg'); 147 | } 148 | i.bank.bank-mb{ 149 | background-color: #150b78; 150 | background-image: url('svg/mb.svg'); 151 | } 152 | i.bank.bank-bnp{ 153 | background-color: #14925e; 154 | background-image: url('svg/bnp.svg'); 155 | } 156 | i.bank.bank-tbank{ 157 | background-color: #fc4f1f; 158 | background-image: url('svg/tbank.svg'); 159 | } 160 | i.bank.bank-ibank{ 161 | background-color: #184615; 162 | background-image: url('svg/ibank.svg'); 163 | } 164 | i.bank.bank-tisco{ 165 | background-color: #12549f; 166 | background-image: url('svg/tisco.svg'); 167 | } 168 | i.bank.bank-kk{ 169 | background-color: #199cc5; 170 | background-image: url('svg/kk.svg'); 171 | } 172 | i.bank.bank-icbc{ 173 | background-color: #c50f1c; 174 | background-image: url('svg/icbc.svg'); 175 | } 176 | i.bank.bank-tcrb{ 177 | background-color: #0a4ab3; 178 | background-image: url('svg/tcrb.svg'); 179 | } 180 | i.bank.bank-lhb{ 181 | background-color: #6d6e71; 182 | background-image: url('svg/lhb.svg'); 183 | } 184 | i.bank.bank-ttb{ 185 | background-color: #ecf0f1; 186 | background-image: url('svg/ttb.svg'); 187 | } 188 | i.bank.bank-tmn{ 189 | background-color: #ecf0f1; 190 | background-image: url('svg/tmn.svg'); 191 | } 192 | i.bank.bank-pp{ 193 | background-color: #00427a; 194 | background-image: url('svg/pp.svg'); 195 | } 196 | -------------------------------------------------------------------------------- /banks.json: -------------------------------------------------------------------------------- 1 | { 2 | "th": { 3 | "bbl": { "code": "002", "color": "#1e4598", "official_name": "BANGKOK BANK PUBLIC COMPANY LTD.", "thai_name": "ธนาคารกรุงเทพ", "nice_name": "Bangkok Bank" }, 4 | "kbank": { "code": "004", "color": "#138f2d", "official_name": "KASIKORNBANK PUBLIC COMPANY LTD.", "thai_name": "ธนาคารกสิกรไทย", "nice_name": "Kasikornbank" }, 5 | "rbs": { "code": "005", "color": "#032952", "official_name": "THE ROYAL BANK OF SCOTLAND PLC", "thai_name": "ธนาคาร เดอะรอยัลแบงค์อ๊อฟสกอตแลนด์", "nice_name": "Royal Bank of Scotland" }, 6 | "ktb": { "code": "006", "color": "#1ba5e1", "official_name": "KRUNG THAI BANK PUBLIC COMPANY LTD.", "thai_name": "ธนาคารกรุงไทย", "nice_name": "Krungthai Bank" }, 7 | "jpm": { "code": "008", "color": "#321c10", "official_name": "JPMORGAN CHASE BANK, NATIONAL ASSOCIATION", "thai_name": "เจพีมอร์แกนเชส", "nice_name": "J.P. Morgan" }, 8 | "mufg": { "code": "010", "color": "#d61323", "official_name": "THE BANK OF TOKYO-MITSUBISHI UFJ, LTD.", "thai_name": "ธนาคารแห่งโตเกียว-มิตซูบิชิ ยูเอฟเจ", "nice_name": "Bank of Tokyo-Mitsubishi UFJ" }, 9 | "tmb": { "code": "011", "color": "#1279be", "official_name": "TMB BANK PUBLIC COMPANY LIMITED.", "thai_name": "ธนาคารทหารไทย", "nice_name": "TMB Bank" }, 10 | "scb": { "code": "014", "color": "#4e2e7f", "official_name": "SIAM COMMERCIAL BANK PUBLIC COMPANY LTD.", "thai_name": "ธนาคารไทยพาณิชย์", "nice_name": "Siam Commercial Bank" }, 11 | "citi": { "code": "017", "color": "#1583c7", "official_name": "CITIBANK, N.A.", "thai_name": "ธนาคารซิตี้แบงค์", "nice_name": "Citibank" }, 12 | "smbc": { "code": "018", "color": "#a0d235", "official_name": "SUMITOMO MITSUI BANKING CORPORATION", "thai_name": "ธนาคารซูมิโตโม มิตซุย แบงค์กิ้ง คอร์ปอเรชั่น", "nice_name": "Sumitomo Mitsui Banking Corporation" }, 13 | "sc": { "code": "020", "color": "#0f6ea1", "official_name": "STANDARD CHARTERED BANK (THAI) PUBLIC COMPANY LIMITED", "thai_name": "สแตนดาร์ดชาร์เตอร์ด ประเทศไทย", "nice_name": "Standard Chartered (Thai)" }, 14 | "cimb": { "code": "022", "color": "#7e2f36", "official_name": "CIMB THAI BANK PUPBLIC COMPANY LTD.", "thai_name": "ธนาคารซีไอเอ็มบีไทย", "nice_name": "CIMB Thai Bank" }, 15 | "uob": { "code": "024", "color": "#0b3979", "official_name": "UNITED OVERSEAS BANK (THAI) PUBLIC COMPANY LIMITED", "thai_name": "ธนาคารยูโอบี", "nice_name": "United Overseas Bank (Thai)" }, 16 | "bay": { "code": "025", "color": "#fec43b", "official_name": "BANK OF AYUDHYA PUBLIC COMPANY LTD.", "thai_name": "ธนาคารกรุงศรีอยุธยา", "nice_name": "Bank of Ayudhya (Krungsri)" }, 17 | "mega": { "code": "026", "color": "#815e3b", "official_name": "MEGA INTERNATIONAL COMMERCIAL BANK PUBLIC COMPANY LIMITED", "thai_name": "ธนาคาร เมกะ สากลพาณิชย์", "nice_name": "Mega International Commercial Bank" }, 18 | "boa": { "code": "027", "color": "#e11e3c", "official_name": "BANK OF AMERICA, NATIONAL ASSOCIATION", "thai_name": "แบงก์ออฟอเมริกาคอร์ปอเรชั่น", "nice_name": "Bank of America" }, 19 | "cacib": { "code": "028", "color": "#0e765b", "official_name": "CREDIT AGRICOLE CORPORATE AND INVESTMENT BANK", "thai_name": "ธนาคารเครดิต อะกริโคล", "nice_name": "Crédit Agricole" }, 20 | "gsb": { "code": "030", "color": "#eb198d", "official_name": "THE GOVERNMENT SAVINGS BANK", "thai_name": "ธนาคารออมสิน", "nice_name": "Government Savings Bank" }, 21 | "hsbc": { "code": "031", "color": "#fd0d1b", "official_name": "THE HONGKONG AND SHANGHAI BANKING CORPORATION LTD.", "thai_name": "ฮ่องกงและเซี่ยงไฮ้แบงกิ้งคอร์ปอเรชั่น", "nice_name": "Hongkong and Shanghai Banking Corporation" }, 22 | "db": { "code": "032", "color": "#0522a5", "official_name": "DEUTSCHE BANK AG.", "thai_name": "ธนาคารดอยช์แบงก์", "nice_name": "Deutsche Bank" }, 23 | "ghb": { "code": "033", "color": "#f57d23", "official_name": "THE GOVERNMENT HOUSING BANK", "thai_name": "ธนาคารอาคารสงเคราะห์", "nice_name": "Government Housing Bank" }, 24 | "baac": { "code": "034", "color": "#4b9b1d", "official_name": "BANK FOR AGRICULTURE AND AGRICULTURAL COOPERATIVES", "thai_name": "ธนาคารเพื่อการเกษตรและสหกรณ์การเกษตร", "nice_name": "Bank for Agriculture and Agricultural Cooperatives" }, 25 | "mb": { "code": "039", "color": "#150b78", "official_name": "MIZUHO BANK, LTD.", "thai_name": "ธนาคารมิซูโฮ", "nice_name": "Mizuho Bank" }, 26 | "bnp": { "code": "045", "color": "#14925e", "official_name": "BNP PARIBAS", "thai_name": "บีเอ็นพี พารีบาส์", "nice_name": "BNP Paribas" }, 27 | "tbank": { "code": "065", "color": "#fc4f1f", "official_name": "THANACHART BANK PUBLIC COMPANY LTD.", "thai_name": "ธนาคารธนชาต", "nice_name": "Thanachart Bank" }, 28 | "ibank": { "code": "066", "color": "#184615", "official_name": "ISLAMIC BANK OF THAILAND", "thai_name": "ธนาคารอิสลามแห่งประเทศไทย", "nice_name": "Islamic Bank of Thailand" }, 29 | "tisco": { "code": "067", "color": "#12549f", "official_name": "TISCO BANK PUBLIC COMPANY LIMITED", "thai_name": "ธนาคารทิสโก้", "nice_name": "Tisco Bank" }, 30 | "kk": { "code": "069", "color": "#199cc5", "official_name": "KIATNAKIN BANK PUBLIC COMPANY LIMITED", "thai_name": "ธนาคารเกียรตินาคินภัทร", "nice_name": "Kiatnakin Bank" }, 31 | "icbc": { "code": "070", "color": "#c50f1c", "official_name": "INDUSTRIAL AND COMMERCIAL BANK OF CHINA (THAI) PUBLIC COMPANY LIMITED", "thai_name": "ธนาคารสินเอเซีย จำกัด (มหาชน)", "nice_name": "Industrial and Commercial Bank of China (Thai)" }, 32 | "tcrb": { "code": "071", "color": "#0a4ab3", "official_name": "THE THAI CREDIT RETAIL BANK PUBLIC COMPANY LIMITED", "thai_name": "ธนาคารไทยเครดิต เพื่อรายย่อย", "nice_name": "Thai Credit Retail Bank" }, 33 | "lhb": { "code": "073", "color": "#6d6e71", "official_name": "LAND AND HOUSES BANK PUBLIC COMPANY LIMITED", "thai_name": "ธนาคารแลนด์ แอนด์ เฮ้าส์", "nice_name": "Land and Houses Bank" }, 34 | "tmn": { "code": "074", "color": "#ecf0f1", "official_name": "TRUE MONEY WALLET", "thai_name": "ทรูมันนี่ วอลเล็ท", "nice_name": "TrueMoney Wallet" }, 35 | "pp": { "code": "075", "color": "#00427a", "official_name": "PROMPTPAY", "thai_name": "พร้อมเพย์", "nice_name": "PromptPay" }, 36 | "ttb": { "code": "076", "color": "#ecf0f1", "official_name": "TMBTHANACHART BANK PUBLIC COMPANY LIMITED", "thai_name": "ธนาคารทหารไทยธนชาต", "nice_name": "TMBThanachart Bankk" } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /svg/tmn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /svg/gsb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 12 | 13 | 14 | 15 | 16 | 129 | 133 | 136 | 143 | 150 | 155 | 159 | 166 | 171 | 190 | 210 | 230 | 251 | 252 | 253 | 254 | 255 | 275 | 278 | 281 | 284 | 285 | 290 | 292 | 315 | 317 | 327 | 586 | 587 | 588 | 589 | 590 | 591 | 594 | 597 | 602 | 604 | 609 | 615 | 618 | 622 | 884 | 885 | 886 | 887 | 888 | 889 | 892 | 895 | 898 | 899 | 900 | 904 | 905 | 906 | --------------------------------------------------------------------------------