Tina has many advanced features that allow the entire CMS editing experience to be customized.
Tina allows any field to be customized through the ui
property. This allows a custom experience to be created for your editors. Some of the main customization features are:
export default defineConfig({//...schema: {collections: [{name: 'posts',label: 'Blog Posts',path: 'content/posts',format: 'mdx',fields: [{type: 'string',label: 'Title',name: 'title',ui: {validate: (value) => {if (value?.length > 40) {return 'Title cannot be more than 40 characters long'}},},},// ... other fields],},],},})// ...
The tina/config.{ts,js,tsx}
config has an optional cmsCallback
parameter that can be added to customize the CMS instance.
// ...export default defineConfig({// ...+ cmsCallback: (cms) => {+ cms.sidebar.position = 'overlay'+ return cms+ }})
The cmsCallback
hook is primarily used for registering custom field plugins. It can also be used for altering Tina's UI, dynamically hiding the sidebar on specific pages, tapping into the CMS event bus, etc.
© TinaCMS 2019–2024