coreui-free-react-admin-template
397 строк · 14.3 Кб
1import React from 'react'2import {3CRow,4CCol,5CCard,6CCardBody,7CCardHeader,8CDropdown,9CDropdownItem,10CDropdownMenu,11CDropdownToggle,12CNav,13CNavItem,14CNavLink,15} from '@coreui/react'16import { DocsExample } from 'src/components'17
18const Navs = () => {19return (20<CRow>21<CCol xs={12}>22<CCard className="mb-4">23<CCardHeader>24<strong>React Navs</strong> <small>Base navs</small>25</CCardHeader>26<CCardBody>27<p className="text-body-secondary small">28The base <code>.nav</code> component is built with flexbox and provide a strong29foundation for building all types of navigation components. It includes some style30overrides (for working with lists), some link padding for larger hit areas, and basic31disabled styling.32</p>33<DocsExample href="components/nav#base-nav">34<CNav>35<CNavItem>36<CNavLink href="#" active>37Active
38</CNavLink>39</CNavItem>40<CNavItem>41<CNavLink href="#">Link</CNavLink>42</CNavItem>43<CNavItem>44<CNavLink href="#">Link</CNavLink>45</CNavItem>46<CNavItem>47<CNavLink href="#" disabled>48Disabled
49</CNavLink>50</CNavItem>51</CNav>52</DocsExample>53<p className="text-body-secondary small">54Classes are used throughout, so your markup can be super flexible. Use{' '}55<code><ul></code>s like above, <code><ol></code> if the order of your56items is important, or roll your own with a <code><nav></code> element. Because57the .nav uses display: flex, the nav links behave the same as nav items would, but58without the extra markup.59</p>60<DocsExample href="components/nav#base-nav">61<CNav as="nav">62<CNavLink href="#" active>63Active
64</CNavLink>65<CNavLink href="#">Link</CNavLink>66<CNavLink href="#">Link</CNavLink>67<CNavLink href="#" disabled>68Disabled
69</CNavLink>70</CNav>71</DocsExample>72</CCardBody>73</CCard>74</CCol>75<CCol xs={12}>76<CCard className="mb-4">77<CCardHeader>78<strong>React Navs</strong> <small>Horizontal alignment</small>79</CCardHeader>80<CCardBody>81<p className="text-body-secondary small">82Change the horizontal alignment of your nav with{' '}83<a href="https://coreui.io/docs/layout/grid/#horizontal-alignment">84flexbox utilities
85</a>86. By default, navs are left-aligned, but you can easily change them to center or right87aligned.88</p>89<p className="text-body-secondary small">90Centered with <code>.justify-content-center</code>:91</p>92<DocsExample href="components/nav#horizontal-alignment">93<CNav className="justify-content-center">94<CNavItem>95<CNavLink href="#" active>96Active
97</CNavLink>98</CNavItem>99<CNavItem>100<CNavLink href="#">Link</CNavLink>101</CNavItem>102<CNavItem>103<CNavLink href="#">Link</CNavLink>104</CNavItem>105<CNavItem>106<CNavLink href="#" disabled>107Disabled
108</CNavLink>109</CNavItem>110</CNav>111</DocsExample>112<p className="text-body-secondary small">113Right-aligned with <code>.justify-content-end</code>:114</p>115<DocsExample href="components/nav#base-nav">116<CNav className="justify-content-end">117<CNavItem>118<CNavLink href="#" active>119Active
120</CNavLink>121</CNavItem>122<CNavItem>123<CNavLink href="#">Link</CNavLink>124</CNavItem>125<CNavItem>126<CNavLink href="#">Link</CNavLink>127</CNavItem>128<CNavItem>129<CNavLink href="#" disabled>130Disabled
131</CNavLink>132</CNavItem>133</CNav>134</DocsExample>135</CCardBody>136</CCard>137</CCol>138<CCol xs={12}>139<CCard className="mb-4">140<CCardHeader>141<strong>React Navs</strong> <small>Vertical</small>142</CCardHeader>143<CCardBody>144<p className="text-body-secondary small">145Stack your navigation by changing the flex item direction with the{' '}146<code>.flex-column</code> utility. Need to stack them on some viewports but not147others? Use the responsive versions (e.g., <code>.flex-sm-column</code>).148</p>149<DocsExample href="components/nav#vertical">150<CNav className="flex-column">151<CNavItem>152<CNavLink href="#" active>153Active
154</CNavLink>155</CNavItem>156<CNavItem>157<CNavLink href="#">Link</CNavLink>158</CNavItem>159<CNavItem>160<CNavLink href="#">Link</CNavLink>161</CNavItem>162<CNavItem>163<CNavLink href="#" disabled>164Disabled
165</CNavLink>166</CNavItem>167</CNav>168</DocsExample>169</CCardBody>170</CCard>171</CCol>172<CCol xs={12}>173<CCard className="mb-4">174<CCardHeader>175<strong>React Navs</strong> <small>Tabs</small>176</CCardHeader>177<CCardBody>178<p className="text-body-secondary small">179Takes the basic nav from above and adds the <code>variant="tabs"</code> class180to generate a tabbed interface181</p>182<DocsExample href="components/nav#tabs">183<CNav variant="tabs">184<CNavItem>185<CNavLink href="#" active>186Active
187</CNavLink>188</CNavItem>189<CNavItem>190<CNavLink href="#">Link</CNavLink>191</CNavItem>192<CNavItem>193<CNavLink href="#">Link</CNavLink>194</CNavItem>195<CNavItem>196<CNavLink href="#" disabled>197Disabled
198</CNavLink>199</CNavItem>200</CNav>201</DocsExample>202</CCardBody>203</CCard>204</CCol>205<CCol xs={12}>206<CCard className="mb-4">207<CCardHeader>208<strong>React Navs</strong> <small>Pills</small>209</CCardHeader>210<CCardBody>211<p className="text-body-secondary small">212Take that same HTML, but use <code>variant="pills"</code> instead:213</p>214<DocsExample href="components/nav#pills">215<CNav variant="pills">216<CNavItem>217<CNavLink href="#" active>218Active
219</CNavLink>220</CNavItem>221<CNavItem>222<CNavLink href="#">Link</CNavLink>223</CNavItem>224<CNavItem>225<CNavLink href="#">Link</CNavLink>226</CNavItem>227<CNavItem>228<CNavLink href="#" disabled>229Disabled
230</CNavLink>231</CNavItem>232</CNav>233</DocsExample>234</CCardBody>235</CCard>236</CCol>237<CCol xs={12}>238<CCard className="mb-4">239<CCardHeader>240<strong>React Navs</strong> <small>Fill and justify</small>241</CCardHeader>242<CCardBody>243<p className="text-body-secondary small">244Force your <code>.nav</code>'s contents to extend the full available width one of245two modifier classes. To proportionately fill all available space with your{' '}246<code>.nav-item</code>s, use <code>layout="fill"</code>. Notice that all247horizontal space is occupied, but not every nav item has the same width.248</p>249<DocsExample href="components/nav#fill-and-justify">250<CNav variant="pills" layout="fill">251<CNavItem>252<CNavLink href="#" active>253Active
254</CNavLink>255</CNavItem>256<CNavItem>257<CNavLink href="#">Link</CNavLink>258</CNavItem>259<CNavItem>260<CNavLink href="#">Link</CNavLink>261</CNavItem>262<CNavItem>263<CNavLink href="#" disabled>264Disabled
265</CNavLink>266</CNavItem>267</CNav>268</DocsExample>269<p className="text-body-secondary small">270For equal-width elements, use <code>layout="justified"</code>. All horizontal271space will be occupied by nav links, but unlike the .nav-fill above, every nav item272will be the same width.273</p>274<DocsExample href="components/nav#fill-and-justify">275<CNav variant="pills" layout="justified">276<CNavItem>277<CNavLink href="#" active>278Active
279</CNavLink>280</CNavItem>281<CNavItem>282<CNavLink href="#">Link</CNavLink>283</CNavItem>284<CNavItem>285<CNavLink href="#">Link</CNavLink>286</CNavItem>287<CNavItem>288<CNavLink href="#" disabled>289Disabled
290</CNavLink>291</CNavItem>292</CNav>293</DocsExample>294</CCardBody>295</CCard>296</CCol>297<CCol xs={12}>298<CCard className="mb-4">299<CCardHeader>300<strong>React Navs</strong> <small>Working with flex utilities</small>301</CCardHeader>302<CCardBody>303<p className="text-body-secondary small">304If you need responsive nav variations, consider using a series of{' '}305<a href="https://coreui.io/docs/utilities/flex">flexbox utilities</a>. While more306verbose, these utilities offer greater customization across responsive breakpoints. In307the example below, our nav will be stacked on the lowest breakpoint, then adapt to a308horizontal layout that fills the available width starting from the small breakpoint.309</p>310<DocsExample href="components/nav#working-with-flex-utilities">311<CNav as="nav" variant="pills" className="flex-column flex-sm-row">312<CNavLink href="#" active>313Active
314</CNavLink>315<CNavLink href="#">Link</CNavLink>316<CNavLink href="#">Link</CNavLink>317<CNavLink href="#" disabled>318Disabled
319</CNavLink>320</CNav>321</DocsExample>322</CCardBody>323</CCard>324</CCol>325<CCol xs={12}>326<CCard className="mb-4">327<CCardHeader>328<strong>React Navs</strong> <small>Tabs with dropdowns</small>329</CCardHeader>330<CCardBody>331<DocsExample href="components/nav#tabs-with-dropdowns">332<CNav>333<CNavItem>334<CNavLink href="#" active>335Active
336</CNavLink>337</CNavItem>338<CDropdown variant="nav-item">339<CDropdownToggle color="secondary">Dropdown button</CDropdownToggle>340<CDropdownMenu>341<CDropdownItem href="#">Action</CDropdownItem>342<CDropdownItem href="#">Another action</CDropdownItem>343<CDropdownItem href="#">Something else here</CDropdownItem>344</CDropdownMenu>345</CDropdown>346<CNavItem>347<CNavLink href="#">Link</CNavLink>348</CNavItem>349<CNavItem>350<CNavLink href="#" disabled>351Disabled
352</CNavLink>353</CNavItem>354</CNav>355</DocsExample>356</CCardBody>357</CCard>358</CCol>359<CCol xs={12}>360<CCard className="mb-4">361<CCardHeader>362<strong>React Navs</strong> <small>Pills with dropdowns</small>363</CCardHeader>364<CCardBody>365<DocsExample href="components/nav#pills-with-dropdowns">366<CNav variant="pills">367<CNavItem>368<CNavLink href="#" active>369Active
370</CNavLink>371</CNavItem>372<CDropdown variant="nav-item">373<CDropdownToggle color="secondary">Dropdown button</CDropdownToggle>374<CDropdownMenu>375<CDropdownItem href="#">Action</CDropdownItem>376<CDropdownItem href="#">Another action</CDropdownItem>377<CDropdownItem href="#">Something else here</CDropdownItem>378</CDropdownMenu>379</CDropdown>380<CNavItem>381<CNavLink href="#">Link</CNavLink>382</CNavItem>383<CNavItem>384<CNavLink href="#" disabled>385Disabled
386</CNavLink>387</CNavItem>388</CNav>389</DocsExample>390</CCardBody>391</CCard>392</CCol>393</CRow>394)395}
396
397export default Navs398