Box Shadow जनरेटर

सुंदर छाया को दृश्य रूप से बनाएँ और CSS कॉपी करें।

आपका डेटा आपके डिवाइस से बाहर नहीं जाता

प्रीसेट

4px
4px
10px
0px
25%
box-shadow: 4px 4px 10px 0px rgba(0,0,0,0.25);

कैसे उपयोग करें

  1. क्षैतिज और लंबवत ऑफ़सेट, ब्लर, स्प्रेड और अपारदर्शिता समायोजित करने के लिए स्लाइडर खींचें।
  2. छाया का रंग चुनें और आवश्यकता अनुसार "inset" सक्षम करें।
  3. कई छायाएँ स्टैक करने के लिए "छाया परत जोड़ें" पर क्लिक करें।
  4. त्वरित शुरुआत के लिए प्रीसेट का उपयोग करें।
  5. परिणाम को अपनी स्टाइलशीट में पेस्ट करने के लिए "CSS कॉपी करें" पर क्लिक करें।

अक्सर पूछे जाने वाले प्रश्न

CSS में box-shadow क्या है?

CSS box-shadow प्रॉपर्टी किसी तत्व के चारों ओर छाया प्रभाव जोड़ती है। यह क्षैतिज ऑफ़सेट, लंबवत ऑफ़सेट, ब्लर त्रिज्या, स्प्रेड त्रिज्या और रंग के लिए मान लेती है।

क्या मैं कई छायाएँ जोड़ सकता हूँ?

हाँ। दूसरी छाया जोड़ने के लिए «छाया परत जोड़ें» पर क्लिक करें। CSS आउटपुट में कई छायाएँ अल्पविराम से अलग होती हैं। यह जटिल परतदार प्रभाव बनाने की अनुमति देता है।

inset कीवर्ड किस लिए है?

«inset» जोड़ने से छाया तत्व के अंदर दिखाई देती है, बाहर की बजाय, एक आंतरिक छाया या «दबे हुए» प्रभाव का निर्माण करती है।

box-shadow के पांच Parameters

CSS box-shadow एक element के border box पर एक या अधिक drop-shadow effects attach करता है। Grammar है box-shadow: <color>? <offset-x> <offset-y> <blur-radius>? <spread-radius>? inset?, multiple shadows comma-separated के साथ। हर parameter एक specific चीज़ करता है:

Browser shadows की list front-to-back composite करता है: first-listed shadow viewer के closest है, last सबसे furthest back है। यह text-shadow और background जैसी ordering है, लेकिन यह most CSS rules के cascade के opposite है, नए authors के लिए common surprise।

Material Design का Two-Shadow Elevation System

Google का Material Design (May 2014 में introduced; 2021 में Material Design 3) एक quantised elevation system define करता है जिसमें UI surfaces कई density-independent pixel levels में से एक पर sit करती हैं। हर level पर shadow recipe दो stacked shadows use करती है:

Material Design 2 में, elevation values 0dp (no shadow) से 24dp तक चलती हैं; cards typically rest पर 1-2dp use करते हैं और hover पर 8dp तक animate करते हैं, जबकि modal dialogs 24dp use करते हैं। Material Design 3 ने scale को पांच named Levels (1 through 5) तक condense किया और dark themes पर drop shadows के अलावा tinted overlays add किए। Umbra-plus-penumbra structure visual model बना रहता है, और इसीलिए Tailwind का shadow-md दो stacked shadows के रूप में ship होता है: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06)

Neumorphism: वह Trend जिसे दो Opposing Shadows चाहिए थे

Neumorphism («new» और «skeuomorphism» का portmanteau) late 2019 / early 2020 में viral popularity में rise हुआ December 2019 Dribbble post के बाद जो Ukrainian designer Alexander Plyuto का था और जो हफ्तों में tens of thousands of likes collect कर गया। Defining recipe है एक element पर दो box-shadows जिसका background colour उसके parent जैसा हो: bottom-right पर darker shadow और top-left पर lighter shadow। Dark side surface को light source से away recede simulate करती है; light side इसे highlight में lift simulate करती है। Offsets invert करने से (या दोनों पर inset add करने से) recessed/pressed appearance create होती है।

Honest accessibility caveat: neumorphism की widely criticised किया गया है क्योंकि element और उसके background के बीच visual contrast necessarily बहुत low है, वे एक colour share करते हैं। Buttons और inputs WCAG 1.4.11 (Non-text Contrast, AA, UI components का adjacent colours के against 3:1 ratio) fail कर सकते हैं। Pressed और unpressed states अक्सर केवल subtle shadow direction से distinguishable होती हैं, जो screen readers convey नहीं कर सकते और जो low vision, colour blindness, या screen glare वाले किसी के लिए invisible होती हैं। Style को decorative surfaces पर sparingly use करें, primary controls पर नहीं।

box-shadow बनाम filter: drop-shadow()

CSS Filter Effects एक alternative define करता है, filter: drop-shadow(<x> <y> <blur> <color>): जो visually similar दिखती है लेकिन एक critical difference के साथ। box-shadow border box rectangle का shadow cast करता है (यदि कोई हो तो border-radius से rounded)। drop-shadow rendered element के alpha channel का shadow cast करता है, children, transparent PNGs, cutouts वाले SVG shapes, masked content सहित। drop-shadow choose करने का most common reason यह है कि आप जिस element को shadow देना चाहते हैं वह rectangle नहीं है, transparent PNG icon, SVG logo, speech-bubble triangle।

box-shadowdrop-shadow()
Spread पैरामीटरहांनहीं
Inset संस्करणहांनहीं
अनेक shadowsहां (comma list)हां (chain filters)
Descendants को affect करती हैनहींहां (whole subtree)
Clippingoverflow:hidden से बाहर extend हो सकती हैFilter bounds तक confined
PerformanceCompositor के लिए अनुकूलFilter pass trigger करता है

Performance Notes

Box-shadow CSS की सबसे expensive properties में से एक है real time में render करने के लिए। Cost के तीन drivers हैं: blur kernel size (Gaussian blur एक separable two-pass convolution है; blur को double करने से per-pixel work quadruple होता है, इसलिए large card पर 100-pixel blur scroll के दौरान frame rate noticeably drop कर सकती है), shadow surface area (rectangle जो spread से expand और blur से further grow होता है वही GPU को rasterise करना होता है, large modal-overlay shadows सबसे expensive kind हैं), और repaints (animating box-shadow shadow region का repaint हर frame पर trigger करता है)।

व्यावहारिक सुझाव:

Accessibility

Shadows accessibility tree की दृष्टि से decorative हैं (screen readers उन्हें ignore करते हैं) लेकिन उनके implications हैं:

Quick Recipes

EffectCSS
सूक्ष्म card lift0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24)
मृदु modern card0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06)
भारी modal lift0 25px 50px -12px rgba(0,0,0,0.25)
तीखा 1px stamp0 0 0 1px rgba(0,0,0,0.05)
फ़ोकस ring (3px)0 0 0 3px rgba(59,130,246,0.5)
Inset input «well»inset 0 2px 4px 0 rgba(0,0,0,0.06)
चमकदार halo0 0 20px 4px rgba(99,102,241,0.6)

अधिक Questions

मेरी shadow clip क्यों हो रही है?

लगभग हमेशा इसलिए कि किसी ancestor element में overflow: hidden है। Shadow border box से beyond extend करती है लेकिन ancestor के edge पर clip होती है। दो fixes: shadow को ancestor पर ही lift करें, या overflow clipping के बिना wrapping element use करें। filter: drop-shadow() में यह issue नहीं है लेकिन इसके अपने trade-offs हैं।

क्या मुझे अभी भी -webkit-box-shadow जैसे vendor prefixes use करने चाहिए?

नहीं। Unprefixed box-shadow around 2012 से universally supported है। Vendor prefixes 2026 code में pure noise हैं और strip होनी चाहिए। Early 2010s की CSS reset libraries अक्सर उन्हें defensively ship करती थीं; modern code उन्हें safely drop कर सकता है।

Text पर shadow कैसे apply करूं, box पर नहीं?

text-shadow use करें, जिसमें same offset / blur / colour syntax है लेकिन कोई spread या inset नहीं। Stylised text पर glyph-shaped shadows के लिए (जैसे background-clip: text gradient text), parent पर filter: drop-shadow() सही tool है, box-shadow glyphs के behind rectangular shadow cast करेगा।

मेरी 0 0 0 2px shadow soft क्यों नहीं दिखती?

क्योंकि third value (blur radius) 0 है। Blur के बिना spread-only shadow sharp solid outline produce करती है, जो focus rings और «fake outline» tricks के लिए exactly वही है जो आप चाहते हैं लेकिन soft elevation के लिए नहीं। Some blur add करें: 0 0 4px 0 rgba(0,0,0,0.2)

क्या कुछ server को भेजा जाता है?

नहीं। Preview आपके browser में sliders drag करने पर re-renders होता है; CSS string locally generate होती है; copying आपके clipboard पर writes होता है। Page एक बार load होने के बाद offline काम करता है।

संबंधित टूल

CSS ग्रेडिएंट जनरेटर मुफ़्त ऑनलाइन कलर पैलेट जनरेटर CSS मिनिफायर