Skip to content

थीम डेवलपमेंट ​

mineproj थीम npm पैकेज हैं जो आपकी साइट के लुक और फील को नियंत्रित करते हैं।

थीम अनुबंध ​

एक थीम एक ऑब्जेक्ट है जिसमें निम्नलिखित गुण होते हैं:

गुणप्रकारआवश्यकविवरण
namestring✅अद्वितीय थीम नाम
layoutsRecord<string, Component>✅प्रत्येक रूट प्रकार के लिए लेआउट
componentsRecord<string, Component>वैकल्पिकपुन: प्रयोज्य घटक
slotsstring[]वैकल्पिकनामांकित सम्मिलन बिंदु
configSchemaZodSchemaवैकल्पिकthemeConfig के लिए स्कीमा
localesRecord<string, Record<string, string>>वैकल्पिकUI अनुवाद शब्दकोश
stylesstring[]वैकल्पिकCSS स्ट्रिंग्स प्रत्येक पृष्ठ के head में इनलाइन की जाती हैं
headScriptsstring[]वैकल्पिकपृष्ठ head में इंजेक्ट की जाने वाली इनलाइन स्क्रिप्ट्स
islandsRecord<string, Component>वैकल्पिकक्लाइंट पर हाइड्रेटेड इंटरैक्टिव घटक
extendsTheme | stringवैकल्पिकमूल थीम जिससे इनहेरिट करना है

उदाहरण ​

ts
import { defineTheme } from '@mineproj/core';

const theme = defineTheme({
  name: 'my-theme',
  layouts: {
    home: ({ data, config }) => (
      <main>
        <h1>{config.title}</h1>
        <ul>
          {data.projects.map(p => <li key={p.slug}>{p.name}</li>)}
        </ul>
      </main>
    ),
  },
  styles: [`:root { --mp-color-accent: #ff5500; }`],
});

export default theme;

अनुबंध परीक्षण ​

ts
import { runThemeContract } from '@mineproj/test-utils';
const result = runThemeContract(myTheme, { requireAllLayouts: true });
console.log(result.errors);

प्रकाशन ​

  1. अपने पैकेज का नाम mineproj-theme-* या @scope/mineproj-theme-* रखें
  2. package.json में "keywords": ["mineproj-theme"] जोड़ें
  3. मान्य करने के लिए runThemeContract चलाएँ
  4. npm पर प्रकाशित करें

Released under the Apache-2.0 License.