The skeleton is the same double-background trick as a gradient border — a conic-gradient outside, a surface-coloured fill inside, so colour only shows through the border's thickness. Layer a noise image generated with an SVG feTurbulence filter over that border and blend it with mix-blend-mode: overlay, and the surface roughens while the border's colour information survives.
The noise layer needs to sit beneath the solid inner fill so it only shows within the border's thickness, keeping the card's interior clean. Keep rotating the gradient's angle with JS and the colour flows while the grain stays fixed in place — smooth light and rough texture sitting in contrast within the same border.
Where film grain spreads noise across an entire frame for a photographic texture, this confines that same noise to a narrow border and combines it with a moving gradient.
When to use
Use for a brutalist or analogue-mood product card, or a limited-edition badge. Too much noise just muddies the border colour — keep its opacity at 0.5 or below.