diff --git a/_data/homepage.yml b/_data/homepage.yml index ff4151147a..0ebc85bfc5 100644 --- a/_data/homepage.yml +++ b/_data/homepage.yml @@ -131,25 +131,55 @@ companies: logos: - name: "Sony" image: "sony.svg" - url: "/market-share#sony" - - name: "Samsung" - image: "samsung.svg" - url: "/market-share#samsung" + url: "/market-share#entry-sony" + - name: "Fitbit" + image: "fitbit.svg" + url: "/market-share#entry-fitbit" - name: "Xiaomi" image: "xiaomi.svg" - url: "/market-share#xiaomi" + url: "/market-share#entry-xiaomi" + - name: "PX4" + image: "px4.svg" + url: "/market-share#entry-px4" + - name: "ArduSimple" + image: "ardusimple.png" + url: "/market-share#entry-ardusimple" + - name: "JAE" + image: "JAE.png" + url: "/market-share#entry-jae" + - name: "Li Auto" + image: "LI_Auto.png" + url: "/market-share#entry-li-auto" + - name: "Samsung" + image: "samsung.svg" + url: "/market-share#entry-samsung" + - name: "Espressif" + image: "espressif.png" + url: "/market-share#entry-espressif" + - name: "Elektroline" + image: "elektroline.png" + url: "/market-share#entry-elektroline" + - name: "Meadow" + image: "meadow.png" + url: "/market-share#entry-meadow" + - name: "NXP" + image: "NXP.jpg" + url: "/market-share#entry-nxp" + - name: "Seeed Studio" + image: "seeed.png" + url: "/market-share#entry-seeed" + - name: "Japanese Lunar Mission" + no_image: true + url: "/market-share#entry-japan" - name: "Google" image: "google.svg" - url: "/market-share#google" + url: "/market-share#entry-google" - name: "Motorola" image: "motorola.svg" - url: "/market-share#motorola" - - name: "Fitbit" - image: "fitbit.svg" - url: "/market-share#fitbit" - - name: "Seeed Studio" - image: "seeed.png" - url: "/market-share#seeed-studio" - - name: "InSpace" - image: "inspace.png" - url: "/market-share#inspace" + url: "/market-share#entry-motorola" + - name: "CU InSpace" + image: "Inspace.jpg" + url: "/market-share#entry-inspace" + - name: "micro-ROS" + image: "micro-ros.JPG" + url: "/market-share#entry-micro-ros" diff --git a/_includes/themes/apache/sections/_companies.html b/_includes/themes/apache/sections/_companies.html index 4579be36f2..8266e8495f 100644 --- a/_includes/themes/apache/sections/_companies.html +++ b/_includes/themes/apache/sections/_companies.html @@ -7,7 +7,11 @@

{{ site.data.homepage.companies.title }}

{% for company in site.data.homepage.companies.logos %} {% endfor %} @@ -15,7 +19,11 @@

{{ site.data.homepage.companies.title }}

{% for company in site.data.homepage.companies.logos %} {% endfor %} diff --git a/assets/themes/apache/css/modern.css b/assets/themes/apache/css/modern.css index 56fa434aad..0b4db04efb 100644 --- a/assets/themes/apache/css/modern.css +++ b/assets/themes/apache/css/modern.css @@ -235,15 +235,12 @@ body { color: var(--text-primary); text-decoration: none; font-size: 14px; - transition: all 0.15s; - border-left: 2px solid transparent; + transition: background 0.15s, color 0.15s; } .nav-dropdown a:hover { background: var(--bg-card); color: var(--accent-primary); - border-left-color: var(--accent-primary); - padding-left: 18px; } .theme-btn { @@ -2059,13 +2056,64 @@ tr:hover { filter: brightness(3.5) saturate(0) contrast(1.5); } -/* InSpace - white PNG logo needs to be black in light mode */ -[data-theme="light"] .company-logo-img[alt="InSpace"] { - filter: brightness(0); +/* PX4 has white background - remove it with blend mode in light; invert in dark */ +.company-logo-img[alt="PX4"] { + mix-blend-mode: multiply; +} +@media (prefers-color-scheme: dark) { + html:not([data-theme="light"]) .company-logo-img[alt="PX4"] { + mix-blend-mode: normal; + filter: invert(1) brightness(0.9) !important; + } + html:not([data-theme="light"]) .company-logo-container:hover .company-logo-img[alt="PX4"] { + mix-blend-mode: normal; + filter: invert(1) brightness(0.9) !important; + } +} +[data-theme="dark"] .company-logo-img[alt="PX4"] { + mix-blend-mode: normal; + filter: invert(1) brightness(0.9) !important; +} +[data-theme="dark"] .company-logo-container:hover .company-logo-img[alt="PX4"] { + mix-blend-mode: normal; + filter: invert(1) brightness(0.9) !important; } -[data-theme="light"] .company-logo-container:hover .company-logo-img[alt="InSpace"] { - filter: brightness(0); +/* Japan Lunar text label (when no image is used) */ +.company-logo-text { + font-size: 1rem; + font-weight: 700; + color: var(--text-primary); + text-align: center; + line-height: 1.3; + padding: 0 0.5rem; +} + +/* White-background JPG/PNG logos: invert+hue-rotate in dark mode + preserves brand hues while turning white bg dark */ +[data-theme="dark"] .company-logo-img[alt="ArduSimple"], +[data-theme="dark"] .company-logo-img[alt="JAE"], +[data-theme="dark"] .company-logo-img[alt="Li Auto"], +[data-theme="dark"] .company-logo-img[alt="Espressif"], +[data-theme="dark"] .company-logo-img[alt="Elektroline"], +[data-theme="dark"] .company-logo-img[alt="Meadow"], +[data-theme="dark"] .company-logo-img[alt="NXP"], +[data-theme="dark"] .company-logo-img[alt="Seeed Studio"], +[data-theme="dark"] .company-logo-img[alt="CU InSpace"], +[data-theme="dark"] .company-logo-img[alt="micro-ROS"] { + filter: invert(1) hue-rotate(180deg); +} +[data-theme="dark"] .company-logo-container:hover .company-logo-img[alt="ArduSimple"], +[data-theme="dark"] .company-logo-container:hover .company-logo-img[alt="JAE"], +[data-theme="dark"] .company-logo-container:hover .company-logo-img[alt="Li Auto"], +[data-theme="dark"] .company-logo-container:hover .company-logo-img[alt="Espressif"], +[data-theme="dark"] .company-logo-container:hover .company-logo-img[alt="Elektroline"], +[data-theme="dark"] .company-logo-container:hover .company-logo-img[alt="Meadow"], +[data-theme="dark"] .company-logo-container:hover .company-logo-img[alt="NXP"], +[data-theme="dark"] .company-logo-container:hover .company-logo-img[alt="Seeed Studio"], +[data-theme="dark"] .company-logo-container:hover .company-logo-img[alt="CU InSpace"], +[data-theme="dark"] .company-logo-container:hover .company-logo-img[alt="micro-ROS"] { + filter: invert(1) hue-rotate(180deg); } .company-logo { diff --git a/market-share.md b/market-share.md index 8bedecda13..976c4fe17e 100644 --- a/market-share.md +++ b/market-share.md @@ -97,9 +97,9 @@ html[data-theme="dark"] .nx-page { -webkit-font-smoothing: antialiased; } -/* Kill any site-level img constraints inside our page */ +/* Kill any site-level img constraints inside our page — desktop only */ .nx-page img { - max-width: none !important; + max-width: 100% !important; max-height: none !important; width: auto !important; height: auto !important; @@ -158,9 +158,6 @@ html[data-theme="dark"] .nx-page { gap: 12px !important; margin-bottom: 48px !important; } -@media (max-width: 700px) { - .nx-stats { grid-template-columns: repeat(2, 1fr) !important; } -} .nx-stat { background: var(--bg-card) !important; @@ -210,80 +207,6 @@ html[data-theme="dark"] .nx-page { background: var(--border); } -/* ════════════════════════════════════════ - PARTNER STRIP -════════════════════════════════════════ */ -.nx-partner-strip { - display: grid !important; - grid-template-columns: repeat(4, 1fr) !important; - gap: 12px !important; - margin-bottom: 52px !important; -} -@media (max-width: 700px) { - .nx-partner-strip { grid-template-columns: repeat(2, 1fr) !important; } -} - -.nx-chip { - background: var(--bg-chip) !important; - border: 1px solid var(--border) !important; - border-radius: var(--r-md) !important; - padding: 20px 22px !important; - display: flex !important; - align-items: center !important; - justify-content: space-between !important; - gap: 14px !important; - min-height: 80px !important; - box-shadow: var(--sh-sm) !important; - transition: border-color .18s, box-shadow .18s, transform .18s !important; - text-decoration: none !important; -} -.nx-chip:hover { - border-color: var(--border-h) !important; - box-shadow: var(--sh-md) !important; - transform: translateY(-2px) !important; -} - -/* Chip logo: fixed container so logos always have room */ -.nx-chip-logo-wrap { - flex-shrink: 0 !important; - width: 130px !important; - height: 58px !important; - display: flex !important; - align-items: center !important; - justify-content: flex-start !important; -} -.nx-chip-logo-wrap img { - max-width: 130px !important; - max-height: 58px !important; - width: auto !important; - height: auto !important; - object-fit: contain !important; -} -@media (prefers-color-scheme: dark) { - html:not([data-theme="light"]) .nx-chip-logo-wrap img.need-invert { - filter: invert(1) !important; - } -} -html[data-theme="dark"] .nx-chip-logo-wrap img.need-invert { - filter: invert(1) !important; -} - -.nx-chip-meta { text-align: right !important; flex-shrink: 0 !important; } -.nx-chip-name { - font-size: 13px !important; - font-weight: 600 !important; - color: var(--text) !important; - display: block !important; - line-height: 1.2 !important; -} -.nx-chip-tag { - font-family: var(--f-mono) !important; - font-size: 10px !important; - letter-spacing: .06em !important; - text-transform: uppercase !important; - color: var(--text-dim) !important; -} - /* ════════════════════════════════════════ DOMAIN HEADER ════════════════════════════════════════ */ @@ -322,6 +245,12 @@ html[data-theme="dark"] .nx-chip-logo-wrap img.need-invert { box-shadow: var(--sh-md) !important; border-color: var(--border-h) !important; } +a.nx-entry { + display: block !important; + text-decoration: none !important; + color: inherit !important; + scroll-margin-top: calc(64px + 1.5rem) !important; +} /* TWO COLUMN GRID — forced with !important */ .nx-entry-grid { @@ -330,8 +259,74 @@ html[data-theme="dark"] .nx-chip-logo-wrap img.need-invert { grid-template-rows: auto !important; min-height: 0 !important; } + +/* ════════════════════════════════════════ + MOBILE OVERRIDES (single block) +════════════════════════════════════════ */ @media (max-width: 760px) { + /* Page container */ + .nx-page { overflow-x: hidden !important; } + + /* Hero */ + .nx-hero { padding: 28px 0 24px !important; margin-bottom: 28px !important; } + .nx-hero h2 { font-size: 1.55rem !important; } + .nx-hero p { font-size: 14px !important; } + + /* Stats */ + .nx-stats { grid-template-columns: repeat(2, 1fr) !important; } + + /* Section label */ + .nx-section-label { margin-top: 36px !important; font-size: 9.5px !important; } + + /* Domain header */ + .nx-domain-hdr h3 { font-size: 17px !important; } + + /* Entry grid — single column */ .nx-entry-grid { grid-template-columns: 1fr !important; } + a.nx-entry { display: block !important; } + + /* Sidebar — horizontal strip: logo left, segment right, compact */ + .nx-side { + border-right: none !important; + border-bottom: 1px solid var(--border) !important; + flex-direction: row !important; + align-items: center !important; + justify-content: flex-start !important; + gap: 16px !important; + padding: 16px 18px !important; + min-height: 0 !important; + } + /* Logo area — fixed width so meta always has room, no overflow clip */ + .nx-page .nx-side .nx-logo-area { + min-height: 56px !important; + width: 112px !important; + max-width: 112px !important; + flex-shrink: 0 !important; + justify-content: center !important; + align-items: center !important; + overflow: visible !important; + } + /* All logos inside sidebar scale proportionally within the 112px column */ + .nx-page .nx-side .nx-logo-area img, + .nx-page .nx-side .nx-logo-area > img { + max-width: 108px !important; + max-height: 56px !important; + width: auto !important; + height: auto !important; + object-fit: contain !important; + } + /* Meta: left-aligned next to logo */ + .nx-page .nx-side .nx-meta { + align-items: flex-start !important; + text-align: left !important; + flex: 1 !important; + min-width: 0 !important; + } + + /* Main content */ + .nx-main { padding: 18px 16px !important; } + .nx-main h4 { font-size: 15px !important; } + .nx-main p { font-size: 13.5px !important; } } /* ── SIDEBAR ── */ @@ -345,16 +340,6 @@ html[data-theme="dark"] .nx-chip-logo-wrap img.need-invert { justify-content: space-between !important; align-items: center !important; } -@media (max-width: 760px) { - .nx-side { - border-right: none !important; - border-bottom: 1px solid var(--border) !important; - flex-direction: row !important; - align-items: center !important; - padding: 20px 24px !important; - } -} - /* Logo area — fixed height so logos always show properly */ .nx-logo-area { width: 100% !important; @@ -480,6 +465,32 @@ html[data-theme="light"] .nx-chip-logo-wrap img.invert-in-light { .logo-knockout-white { mix-blend-mode: multiply !important; } + +/* Color-accurate logos: multiply removes white bg in light mode; + invert+hue-rotate(180deg) in dark mode — inverts lightness (white bg → transparent/black) + while preserving all brand hues exactly (hue 0°→180°→0°, net zero change) */ +.nx-logo-area.logo-preserve img { + mix-blend-mode: multiply !important; +} +@media (prefers-color-scheme: dark) { + html:not([data-theme="light"]) .nx-logo-area.logo-preserve { + background: transparent !important; + padding: 0 !important; + } + html:not([data-theme="light"]) .nx-logo-area.logo-preserve img { + mix-blend-mode: normal !important; + filter: invert(1) hue-rotate(180deg) !important; + } +} +html[data-theme="dark"] .nx-logo-area.logo-preserve { + background: transparent !important; + padding: 0 !important; +} +html[data-theme="dark"] .nx-logo-area.logo-preserve img { + mix-blend-mode: normal !important; + filter: invert(1) hue-rotate(180deg) !important; +} + @media (prefers-color-scheme: dark) { html:not([data-theme="light"]) .logo-knockout-white { mix-blend-mode: normal !important; @@ -545,47 +556,6 @@ html[data-theme="dark"] .nx-stat-asf .nx-asf-logo { filter: brightness(0) invert - -
Industry Partners
-
-
-
- Sony -
-
- Spresense - Platform -
-
-
-
- Fitbit -
-
- Fitbit - Wearable -
-
-
-
- Xiaomi -
-
- OpenVela - Consumer -
-
-
-
- Samsung -
-
- TizenRT - IoT -
-
-
- @@ -597,7 +567,7 @@ html[data-theme="dark"] .nx-stat-asf .nx-asf-logo { filter: brightness(0) invert -
+
@@ -619,10 +589,10 @@ html[data-theme="dark"] .nx-stat-asf .nx-asf-logo { filter: brightness(0) invert
-
+ -
+
@@ -644,10 +614,10 @@ html[data-theme="dark"] .nx-stat-asf .nx-asf-logo { filter: brightness(0) invert
-
+ -
+
@@ -669,7 +639,7 @@ html[data-theme="dark"] .nx-stat-asf .nx-asf-logo { filter: brightness(0) invert
-
+ -
+
@@ -706,10 +676,62 @@ html[data-theme="dark"] .nx-stat-asf .nx-asf-logo { filter: brightness(0) invert
-
+ + + + +
+
+
+ ArduSimple +
+
+ Segment + RTK GNSS +
+
+
+ Precision Positioning +

ArduSimple RTK GNSS

+

ArduSimple provides high-precision RTK GNSS solutions based on u-blox and Septentrio receivers, widely integrated with NuttX-based systems such as PX4. NuttX handles communication, control, and data processing while the GNSS module performs RTK positioning enabling centimeter-level accuracy for drones, autonomous vehicles, and surveying applications.

+
+ GNSS + RTK + Robotics + Autonomous Systems +
+
+
+
+ + + +
+
+
+ JAE +
+
+ Segment + Avionics & Flight Control +
+
+
+ Flight Control Hardware +

Japan Aviation Electronics Industry (JAE)

+

Japan Aviation Electronics Industry (JAE) develops flight controllers based on STM32H7 series microcontrollers running Apache NuttX via PX4 Autopilot. Their hardware is designed for high-reliability UAV and aerospace applications, with NuttX providing the real-time foundation for mission-critical avionics control.

+
+ Avionics + Flight Control + STM32H7 + PX4 +
+
+
+
-
+
@@ -731,7 +753,7 @@ html[data-theme="dark"] .nx-stat-asf .nx-asf-logo { filter: brightness(0) invert
-
+ -
+
@@ -767,10 +789,10 @@ html[data-theme="dark"] .nx-stat-asf .nx-asf-logo { filter: brightness(0) invert
-
+ -
+
@@ -793,10 +815,10 @@ html[data-theme="dark"] .nx-stat-asf .nx-asf-logo { filter: brightness(0) invert
-
+ -
+
@@ -819,10 +841,10 @@ html[data-theme="dark"] .nx-stat-asf .nx-asf-logo { filter: brightness(0) invert
-
+ -
+
@@ -844,7 +866,59 @@ html[data-theme="dark"] .nx-stat-asf .nx-asf-logo { filter: brightness(0) invert
-
+ + + + +
+
+
+ NXP +
+
+ Segment + MCU Portfolio +
+
+
+ Hardware Support +

NXP Semiconductors

+

NXP provides broad hardware support for Apache NuttX across its MCU portfolio, including i.MX RT, LPC, and Kinetis series. NuttX runs on these platforms for real-time and industrial applications, with active community-driven board support and BSP contributions.

+
+ Hardware + MCU + Real-Time + Industrial +
+
+
+
+ + + +
+
+
+ Seeed Studio +
+
+ Segment + Open Hardware +
+
+
+ Platform Support +

Seeed Studio Ecosystem

+

Seeed Studio actively supports Apache NuttX on its open hardware platforms such as XIAO and Wio series. With strong community collaboration, Seeed enables rapid prototyping and IoT development using NuttX in edge and embedded systems.

+
+ Open Hardware + IoT + Prototyping + Edge +
+
+
+
-
+
@@ -880,10 +954,10 @@ html[data-theme="dark"] .nx-stat-asf .nx-asf-logo { filter: brightness(0) invert
-
+ -
+
@@ -905,10 +979,10 @@ html[data-theme="dark"] .nx-stat-asf .nx-asf-logo { filter: brightness(0) invert
-
+ -
+
@@ -930,7 +1004,33 @@ html[data-theme="dark"] .nx-stat-asf .nx-asf-logo { filter: brightness(0) invert
-
+ + + + +
+
+
+ CU InSpace +
+
+ Segment + Aerospace +
+
+
+ Rocket Systems +

CU InSpace

+

CU InSpace uses NuttX to run their rocket telemetry tracker, flown multiple times up to 30,000ft. NuttX is also used for all of the control logic for the InSpace hybrid rocket fill and ignition ground control systems, which is safety critical rocketry software.

+
+ Aerospace + Rocketry + Safety-Critical + Telemetry +
+
+
+
-
+
@@ -967,7 +1067,7 @@ html[data-theme="dark"] .nx-stat-asf .nx-asf-logo { filter: brightness(0) invert
-
+ \ No newline at end of file diff --git a/static/companies/Inspace.jpg b/static/companies/Inspace.jpg new file mode 100644 index 0000000000..3b5827b358 Binary files /dev/null and b/static/companies/Inspace.jpg differ diff --git a/static/companies/JAE.png b/static/companies/JAE.png new file mode 100644 index 0000000000..eb074f064f Binary files /dev/null and b/static/companies/JAE.png differ diff --git a/static/companies/NXP.jpg b/static/companies/NXP.jpg new file mode 100644 index 0000000000..055b36d7ab Binary files /dev/null and b/static/companies/NXP.jpg differ diff --git a/static/companies/ardusimple.png b/static/companies/ardusimple.png new file mode 100644 index 0000000000..1d2b1f455e Binary files /dev/null and b/static/companies/ardusimple.png differ diff --git a/static/companies/inspace.png b/static/companies/inspace.png deleted file mode 100644 index 6af9cd450c..0000000000 Binary files a/static/companies/inspace.png and /dev/null differ