exotic-car-logos 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/LEGAL.md +27 -0
  2. package/LICENSE +26 -0
  3. package/README.md +106 -0
  4. package/dist/allLogos.d.ts +40 -0
  5. package/dist/index.d.ts +42 -0
  6. package/dist/index.esm.js +736 -0
  7. package/dist/index.js +819 -0
  8. package/dist/logos/Abarth.d.ts +5 -0
  9. package/dist/logos/Abarth.js +21 -0
  10. package/dist/logos/AlfaRomeo.d.ts +5 -0
  11. package/dist/logos/AlfaRomeo.js +21 -0
  12. package/dist/logos/Alpine.d.ts +5 -0
  13. package/dist/logos/Alpine.js +21 -0
  14. package/dist/logos/Apollo.d.ts +5 -0
  15. package/dist/logos/Apollo.js +24 -0
  16. package/dist/logos/Arash.d.ts +5 -0
  17. package/dist/logos/Arash.js +21 -0
  18. package/dist/logos/AstonMartin.d.ts +5 -0
  19. package/dist/logos/AstonMartin.js +21 -0
  20. package/dist/logos/Audi.d.ts +5 -0
  21. package/dist/logos/Audi.js +21 -0
  22. package/dist/logos/BMW.d.ts +5 -0
  23. package/dist/logos/BMW.js +21 -0
  24. package/dist/logos/Bentley.d.ts +5 -0
  25. package/dist/logos/Bentley.js +21 -0
  26. package/dist/logos/Brabus.d.ts +5 -0
  27. package/dist/logos/Brabus.js +21 -0
  28. package/dist/logos/Bugatti.d.ts +5 -0
  29. package/dist/logos/Bugatti.js +21 -0
  30. package/dist/logos/Chevrolet.d.ts +5 -0
  31. package/dist/logos/Chevrolet.js +21 -0
  32. package/dist/logos/Czinger.d.ts +5 -0
  33. package/dist/logos/Czinger.js +24 -0
  34. package/dist/logos/Dallara.d.ts +5 -0
  35. package/dist/logos/Dallara.js +24 -0
  36. package/dist/logos/DeTomaso.d.ts +5 -0
  37. package/dist/logos/DeTomaso.js +21 -0
  38. package/dist/logos/Dodge.d.ts +5 -0
  39. package/dist/logos/Dodge.js +21 -0
  40. package/dist/logos/Ferrari.d.ts +5 -0
  41. package/dist/logos/Ferrari.js +21 -0
  42. package/dist/logos/Ford.d.ts +5 -0
  43. package/dist/logos/Ford.js +21 -0
  44. package/dist/logos/Glickenhaus.d.ts +5 -0
  45. package/dist/logos/Glickenhaus.js +24 -0
  46. package/dist/logos/Gumpert.d.ts +5 -0
  47. package/dist/logos/Gumpert.js +21 -0
  48. package/dist/logos/Hennessey.d.ts +5 -0
  49. package/dist/logos/Hennessey.js +21 -0
  50. package/dist/logos/Icona.d.ts +5 -0
  51. package/dist/logos/Icona.js +24 -0
  52. package/dist/logos/Italdesign.d.ts +5 -0
  53. package/dist/logos/Italdesign.js +24 -0
  54. package/dist/logos/Jaguar.d.ts +5 -0
  55. package/dist/logos/Jaguar.js +21 -0
  56. package/dist/logos/Koenigsegg.d.ts +5 -0
  57. package/dist/logos/Koenigsegg.js +21 -0
  58. package/dist/logos/Lamborghini.d.ts +5 -0
  59. package/dist/logos/Lamborghini.js +21 -0
  60. package/dist/logos/Lister.d.ts +5 -0
  61. package/dist/logos/Lister.js +24 -0
  62. package/dist/logos/Lotus.d.ts +5 -0
  63. package/dist/logos/Lotus.js +21 -0
  64. package/dist/logos/Lykan.d.ts +5 -0
  65. package/dist/logos/Lykan.js +24 -0
  66. package/dist/logos/Maserati.d.ts +5 -0
  67. package/dist/logos/Maserati.js +21 -0
  68. package/dist/logos/Maybach.d.ts +5 -0
  69. package/dist/logos/Maybach.js +21 -0
  70. package/dist/logos/McLaren.d.ts +5 -0
  71. package/dist/logos/McLaren.js +21 -0
  72. package/dist/logos/MercedesAMG.d.ts +5 -0
  73. package/dist/logos/MercedesAMG.js +21 -0
  74. package/dist/logos/Mosler.d.ts +5 -0
  75. package/dist/logos/Mosler.js +21 -0
  76. package/dist/logos/Noble.d.ts +5 -0
  77. package/dist/logos/Noble.js +24 -0
  78. package/dist/logos/Pagani.d.ts +5 -0
  79. package/dist/logos/Pagani.js +21 -0
  80. package/dist/logos/Pininfarina.d.ts +5 -0
  81. package/dist/logos/Pininfarina.js +21 -0
  82. package/dist/logos/Polestar.d.ts +5 -0
  83. package/dist/logos/Polestar.js +21 -0
  84. package/dist/logos/Porsche.d.ts +5 -0
  85. package/dist/logos/Porsche.js +21 -0
  86. package/dist/logos/RUF.d.ts +5 -0
  87. package/dist/logos/RUF.js +24 -0
  88. package/dist/logos/Radical.d.ts +5 -0
  89. package/dist/logos/Radical.js +21 -0
  90. package/dist/logos/Rimac.d.ts +5 -0
  91. package/dist/logos/Rimac.js +21 -0
  92. package/dist/logos/RollsRoyce.d.ts +5 -0
  93. package/dist/logos/RollsRoyce.js +21 -0
  94. package/dist/logos/SSC.d.ts +5 -0
  95. package/dist/logos/SSC.js +21 -0
  96. package/dist/logos/Saleen.d.ts +5 -0
  97. package/dist/logos/Saleen.js +21 -0
  98. package/dist/logos/Shelby.d.ts +5 -0
  99. package/dist/logos/Shelby.js +21 -0
  100. package/dist/logos/Spyker.d.ts +5 -0
  101. package/dist/logos/Spyker.js +21 -0
  102. package/dist/logos/TVR.d.ts +5 -0
  103. package/dist/logos/TVR.js +21 -0
  104. package/dist/logos/WMotors.d.ts +5 -0
  105. package/dist/logos/WMotors.js +21 -0
  106. package/dist/logos/Zenvo.d.ts +5 -0
  107. package/dist/logos/Zenvo.js +21 -0
  108. package/dist/types-DV3vCP6D.js +45 -0
  109. package/dist/types-DfZOvtAx.js +54 -0
  110. package/dist/types.d.ts +70 -0
  111. package/package.json +87 -0
  112. package/src/allLogos.ts +43 -0
  113. package/src/index.ts +47 -0
  114. package/src/logos/Abarth.tsx +40 -0
  115. package/src/logos/AlfaRomeo.tsx +40 -0
  116. package/src/logos/Alpine.tsx +40 -0
  117. package/src/logos/Arash.tsx +40 -0
  118. package/src/logos/AstonMartin.tsx +40 -0
  119. package/src/logos/Audi.tsx +40 -0
  120. package/src/logos/BMW.tsx +40 -0
  121. package/src/logos/Bentley.tsx +40 -0
  122. package/src/logos/Brabus.tsx +40 -0
  123. package/src/logos/Bugatti.tsx +40 -0
  124. package/src/logos/Chevrolet.tsx +40 -0
  125. package/src/logos/DeTomaso.tsx +40 -0
  126. package/src/logos/Dodge.tsx +40 -0
  127. package/src/logos/Ferrari.tsx +40 -0
  128. package/src/logos/Ford.tsx +40 -0
  129. package/src/logos/Gumpert.tsx +40 -0
  130. package/src/logos/Hennessey.tsx +40 -0
  131. package/src/logos/Jaguar.tsx +40 -0
  132. package/src/logos/Koenigsegg.tsx +40 -0
  133. package/src/logos/Lamborghini.tsx +40 -0
  134. package/src/logos/Lotus.tsx +40 -0
  135. package/src/logos/Maserati.tsx +40 -0
  136. package/src/logos/Maybach.tsx +40 -0
  137. package/src/logos/McLaren.tsx +40 -0
  138. package/src/logos/MercedesAMG.tsx +40 -0
  139. package/src/logos/Mosler.tsx +40 -0
  140. package/src/logos/Pagani.tsx +40 -0
  141. package/src/logos/Pininfarina.tsx +40 -0
  142. package/src/logos/Polestar.tsx +40 -0
  143. package/src/logos/Porsche.tsx +40 -0
  144. package/src/logos/Radical.tsx +40 -0
  145. package/src/logos/Rimac.tsx +40 -0
  146. package/src/logos/RollsRoyce.tsx +40 -0
  147. package/src/logos/SSC.tsx +40 -0
  148. package/src/logos/Saleen.tsx +40 -0
  149. package/src/logos/Shelby.tsx +40 -0
  150. package/src/logos/Spyker.tsx +40 -0
  151. package/src/logos/TVR.tsx +40 -0
  152. package/src/logos/WMotors.tsx +40 -0
  153. package/src/logos/Zenvo.tsx +40 -0
  154. package/src/types.ts +96 -0
package/LEGAL.md ADDED
@@ -0,0 +1,27 @@
1
+ # Legal Disclaimer
2
+
3
+ All brand logos, wordmarks, and emblems included in or referenced by this package
4
+ are the trademarks and/or registered trademarks of their respective owners.
5
+
6
+ Logo images are sourced from carlogos.org for reference and informational purposes.
7
+ This package is not affiliated with, endorsed by, or sponsored by any of the brands
8
+ represented herein.
9
+
10
+ ## Your Responsibility
11
+
12
+ By using this package, you agree to:
13
+
14
+ - Review each brand's official trademark and usage guidelines before any use
15
+ - Obtain appropriate licenses for commercial use where required
16
+ - Not use logos in a way that implies endorsement, affiliation, or sponsorship
17
+ - Comply with all applicable trademark and intellectual property laws
18
+
19
+ ## Takedown Policy
20
+
21
+ If you are a trademark owner and believe a logo is being used improperly,
22
+ please open an issue at [github.com/mattwhite8/exotic-car-logos/issues](https://github.com/mattwhite8/exotic-car-logos/issues)
23
+ and we will remove the relevant content promptly.
24
+
25
+ ## Source Attribution
26
+
27
+ PNG images sourced from [carlogos.org](https://www.carlogos.org).
package/LICENSE ADDED
@@ -0,0 +1,26 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Matt White
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
+
23
+ IMPORTANT: The MIT license applies to the JavaScript/TypeScript source code
24
+ of this package only. All brand logos, trademarks, and trade dress referenced
25
+ by this package are the property of their respective owners and are NOT covered
26
+ by this license. See LEGAL.md for details.
package/README.md ADDED
@@ -0,0 +1,106 @@
1
+ # exotic-car-logos
2
+
3
+ PNG logo components for the top 50 exotic & luxury car brands. React & React Native compatible. Tree-shakeable. TypeScript.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install exotic-car-logos
9
+ ```
10
+
11
+ ## Quick Start
12
+
13
+ ```tsx
14
+ import { Ferrari, McLaren } from 'exotic-car-logos';
15
+
16
+ // Or tree-shaken single import:
17
+ import Ferrari from 'exotic-car-logos/logos/Ferrari';
18
+
19
+ <Ferrari size="md" /> // 160px (default)
20
+ <Ferrari size="sm" /> // 80px
21
+ <Ferrari size="lg" /> // 320px
22
+ <Ferrari width={240} /> // custom override
23
+ <Ferrari alt="Ferrari Logo" /> // accessible alt
24
+ ```
25
+
26
+ ## Size Presets
27
+
28
+ | Prop value | Renders at | Fetches PNG | Best for |
29
+ | ----------- | ---------- | ----------- | ----------------------- |
30
+ | `size="sm"` | 80px | 160px (2x) | Nav, tables, thumbnails |
31
+ | `size="md"` | 160px | 320px (2x) | Cards, lists (default) |
32
+ | `size="lg"` | 320px | 640px (2x) | Hero, detail views |
33
+ | `width={N}` | Npx | 640px | Any custom size |
34
+
35
+ ## Props
36
+
37
+ | Prop | Type | Default | Description |
38
+ | ----------- | ----------------------- | ---------- | ------------------------------------------------ |
39
+ | `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | Size preset |
40
+ | `width` | `number` | -- | Custom width in px (overrides size) |
41
+ | `height` | `number` | -- | Custom height in px (overrides size) |
42
+ | `alt` | `string` | brand name | Accessible alt text |
43
+ | `loading` | `'lazy' \| 'eager'` | `'lazy'` | Native loading strategy |
44
+ | `className` | `string` | -- | CSS class(es) |
45
+ | `style` | `CSSProperties` | -- | Inline styles (merged with `objectFit: contain`) |
46
+ | `...rest` | `ImgHTMLAttributes` | -- | Any standard `<img>` attribute |
47
+
48
+ ## Brand Metadata
49
+
50
+ Each brand exports a `meta` object alongside the component:
51
+
52
+ ```tsx
53
+ import { FerrariMeta } from 'exotic-car-logos';
54
+
55
+ console.log(FerrariMeta.title); // "Ferrari"
56
+ console.log(FerrariMeta.country); // "Italy"
57
+ console.log(FerrariMeta.hex); // "CD212A"
58
+ console.log(FerrariMeta.founded); // 1939
59
+ ```
60
+
61
+ ## Dynamic Rendering
62
+
63
+ For rendering logos from string keys:
64
+
65
+ ```tsx
66
+ import * as CarLogos from 'exotic-car-logos/allLogos';
67
+
68
+ const brandName = 'Ferrari';
69
+ const Logo = CarLogos[brandName as keyof typeof CarLogos];
70
+ <Logo size="md" />;
71
+ ```
72
+
73
+ ## React Native
74
+
75
+ Use the metadata `pngUrl` with React Native's `Image`:
76
+
77
+ ```tsx
78
+ import { Image } from 'react-native';
79
+ import { FerrariMeta } from 'exotic-car-logos';
80
+
81
+ <Image source={{ uri: FerrariMeta.pngUrl }} style={{ width: 160, height: 160 }} />;
82
+ ```
83
+
84
+ ## All 50 Brands
85
+
86
+ **Italian:** Ferrari, Lamborghini, Maserati, Alfa Romeo, Pagani, De Tomaso, Pininfarina, Dallara, Abarth, Italdesign
87
+
88
+ **German:** Porsche, BMW, Mercedes-AMG, Brabus, Audi, Maybach, RUF, Gumpert, Apollo
89
+
90
+ **British:** McLaren, Bentley, Rolls-Royce, Aston Martin, Lotus, Jaguar, Noble, TVR, Radical, Arash, Lister
91
+
92
+ **French:** Bugatti, Alpine
93
+
94
+ **American:** Shelby, Dodge, Chevrolet, Ford, Saleen, Hennessey, SSC, Mosler, Czinger, Glickenhaus
95
+
96
+ **Swedish:** Koenigsegg, Polestar
97
+
98
+ **Other:** Rimac (Croatia), Zenvo (Denmark), Spyker (Netherlands), W Motors (UAE), Lykan (UAE), Icona (Italy)
99
+
100
+ ## Legal
101
+
102
+ All logos are trademarks of their respective owners. See [LEGAL.md](./LEGAL.md) for details.
103
+
104
+ ## License
105
+
106
+ MIT (source code only). See [LICENSE](./LICENSE).
@@ -0,0 +1,40 @@
1
+ export { Abarth } from "./logos/Abarth";
2
+ export { AlfaRomeo } from "./logos/AlfaRomeo";
3
+ export { Alpine } from "./logos/Alpine";
4
+ export { Arash } from "./logos/Arash";
5
+ export { AstonMartin } from "./logos/AstonMartin";
6
+ export { Audi } from "./logos/Audi";
7
+ export { Bentley } from "./logos/Bentley";
8
+ export { BMW } from "./logos/BMW";
9
+ export { Brabus } from "./logos/Brabus";
10
+ export { Bugatti } from "./logos/Bugatti";
11
+ export { Chevrolet } from "./logos/Chevrolet";
12
+ export { DeTomaso } from "./logos/DeTomaso";
13
+ export { Dodge } from "./logos/Dodge";
14
+ export { Ferrari } from "./logos/Ferrari";
15
+ export { Ford } from "./logos/Ford";
16
+ export { Gumpert } from "./logos/Gumpert";
17
+ export { Hennessey } from "./logos/Hennessey";
18
+ export { Jaguar } from "./logos/Jaguar";
19
+ export { Koenigsegg } from "./logos/Koenigsegg";
20
+ export { Lamborghini } from "./logos/Lamborghini";
21
+ export { Lotus } from "./logos/Lotus";
22
+ export { Maserati } from "./logos/Maserati";
23
+ export { Maybach } from "./logos/Maybach";
24
+ export { McLaren } from "./logos/McLaren";
25
+ export { MercedesAMG } from "./logos/MercedesAMG";
26
+ export { Mosler } from "./logos/Mosler";
27
+ export { Pagani } from "./logos/Pagani";
28
+ export { Pininfarina } from "./logos/Pininfarina";
29
+ export { Polestar } from "./logos/Polestar";
30
+ export { Porsche } from "./logos/Porsche";
31
+ export { Radical } from "./logos/Radical";
32
+ export { Rimac } from "./logos/Rimac";
33
+ export { RollsRoyce } from "./logos/RollsRoyce";
34
+ export { Saleen } from "./logos/Saleen";
35
+ export { Shelby } from "./logos/Shelby";
36
+ export { Spyker } from "./logos/Spyker";
37
+ export { SSC } from "./logos/SSC";
38
+ export { TVR } from "./logos/TVR";
39
+ export { WMotors } from "./logos/WMotors";
40
+ export { Zenvo } from "./logos/Zenvo";
@@ -0,0 +1,42 @@
1
+ export { Abarth, meta as AbarthMeta } from "./logos/Abarth";
2
+ export { AlfaRomeo, meta as AlfaRomeoMeta } from "./logos/AlfaRomeo";
3
+ export { Alpine, meta as AlpineMeta } from "./logos/Alpine";
4
+ export { Arash, meta as ArashMeta } from "./logos/Arash";
5
+ export { AstonMartin, meta as AstonMartinMeta } from "./logos/AstonMartin";
6
+ export { Audi, meta as AudiMeta } from "./logos/Audi";
7
+ export { Bentley, meta as BentleyMeta } from "./logos/Bentley";
8
+ export { BMW, meta as BMWMeta } from "./logos/BMW";
9
+ export { Brabus, meta as BrabusMeta } from "./logos/Brabus";
10
+ export { Bugatti, meta as BugattiMeta } from "./logos/Bugatti";
11
+ export { Chevrolet, meta as ChevroletMeta } from "./logos/Chevrolet";
12
+ export { DeTomaso, meta as DeTomasoMeta } from "./logos/DeTomaso";
13
+ export { Dodge, meta as DodgeMeta } from "./logos/Dodge";
14
+ export { Ferrari, meta as FerrariMeta } from "./logos/Ferrari";
15
+ export { Ford, meta as FordMeta } from "./logos/Ford";
16
+ export { Gumpert, meta as GumpertMeta } from "./logos/Gumpert";
17
+ export { Hennessey, meta as HennesseyMeta } from "./logos/Hennessey";
18
+ export { Jaguar, meta as JaguarMeta } from "./logos/Jaguar";
19
+ export { Koenigsegg, meta as KoenigseggMeta } from "./logos/Koenigsegg";
20
+ export { Lamborghini, meta as LamborghiniMeta } from "./logos/Lamborghini";
21
+ export { Lotus, meta as LotusMeta } from "./logos/Lotus";
22
+ export { Maserati, meta as MaseratiMeta } from "./logos/Maserati";
23
+ export { Maybach, meta as MaybachMeta } from "./logos/Maybach";
24
+ export { McLaren, meta as McLarenMeta } from "./logos/McLaren";
25
+ export { MercedesAMG, meta as MercedesAMGMeta } from "./logos/MercedesAMG";
26
+ export { Mosler, meta as MoslerMeta } from "./logos/Mosler";
27
+ export { Pagani, meta as PaganiMeta } from "./logos/Pagani";
28
+ export { Pininfarina, meta as PininfarinaMeta } from "./logos/Pininfarina";
29
+ export { Polestar, meta as PolestarMeta } from "./logos/Polestar";
30
+ export { Porsche, meta as PorscheMeta } from "./logos/Porsche";
31
+ export { Radical, meta as RadicalMeta } from "./logos/Radical";
32
+ export { Rimac, meta as RimacMeta } from "./logos/Rimac";
33
+ export { RollsRoyce, meta as RollsRoyceMeta } from "./logos/RollsRoyce";
34
+ export { Saleen, meta as SaleenMeta } from "./logos/Saleen";
35
+ export { Shelby, meta as ShelbyMeta } from "./logos/Shelby";
36
+ export { Spyker, meta as SpykerMeta } from "./logos/Spyker";
37
+ export { SSC, meta as SSCMeta } from "./logos/SSC";
38
+ export { TVR, meta as TVRMeta } from "./logos/TVR";
39
+ export { WMotors, meta as WMotorsMeta } from "./logos/WMotors";
40
+ export { Zenvo, meta as ZenvoMeta } from "./logos/Zenvo";
41
+ export type { CarLogoProps, CarLogoMeta, LogoSize } from "./types";
42
+ export { SIZE_MAP, CDN_WIDTH_MAP } from "./types";