/* ========================================================================== #CROP ========================================================================== */ // A list of cropping ratios that get generated as modifier classes. // You should predefine it with only the ratios and names your project needs. // // The map keys are the strings used in the generated class names, and they can // follow any convention, as long as they are properly escaped strings. i.e.: // // $inuit-crops: ( // "2\\:1" : (2:1), // "4-by-3" : (4:3), // "full-hd" : (16:9), // "card-image" : (2:3), // "golden-ratio" : (1.618:1) -> non-integers are okay // ) !default; $inuit-crops: ( "2\\:1" : (2:1), "4\\:3" : (4:3), "16\\:9" : (16:9) ) !default; /** * Provide a cropping container in order to display media (usually images) * cropped to certain ratios. * * 1. Set up a positioning context in which the image can sit. * 2. This is the crucial part: where the cropping happens. */ .o-crop { position: relative; /* [1] */ display: block; overflow: hidden; /* [2] */ } /** * Apply this class to the content (usually `img`) that needs cropping. * * 1. Image’s default positioning is top-left in the cropping box. * 2. Make sure the media doesn’t stop itself too soon. */ .o-crop__content { position: absolute; top: 0; /* [1] */ left: 0; /* [1] */ max-width: none; /* [2] */ } /** * We can position the media in different locations within the cropping area. */ .o-crop__content--left-top { left: 0; } .o-crop__content--left-center { top: 50%; transform: translateY(-50%); } .o-crop__content--left-bottom { top: auto; bottom: 0; } .o-crop__content--right-top { right: 0; left: auto; } .o-crop__content--right-center { top: 50%; right: 0; left: auto; transform: translateY(-50%); } .o-crop__content--right-bottom { top: auto; right: 0; bottom: 0; left: auto; } .o-crop__content--center-top { left: 50%; transform: translateX(-50%); } .o-crop__content--center, .o-crop__content--center-center { top: 50%; left: 50%; transform: translate(-50%, -50%); } .o-crop__content--center-bottom { top: auto; bottom: 0; left: 50%; transform: translateX(-50%); } /* Crop-ratio variants ========================================================================== */ /** * Generate a series of crop classes to be used like so: * *