Added:
- Backpack-SwiftUI:
- Added BPKSwitch component
Added:
-
Backpack-SwiftUI:
- Adding Spacing Tokens
- Adding Corner Radius Tokens
- Adding Color Tokens
- Adding Font Tokens
- Adding Icons Component
- Adding Shadow Tokens
- Adding BpkText and BpkAttributedText
- Adding Card Component
- Adding Button Component
-
Backpack-Common:
- Adding Module
- Adding Icons as SVG
Breaking
- BpkChip
- Icon can now be leading or trailing
- Icon is now 'small' instead of 'large'
Fixed:
- Documentation generation with Jazzy
Added:
- Backpack:
- Swift Code documentation
Added:
- Backpack-SwiftUI:
- Adding Module
Fixed:
- Upgraded to the current node LTS - 16
- Added initialiser to BpkPanel
Added:
-
Backpack/Typography:
- Adding Label 3 font style.
-
Backpack/Buttons:
- Adding Secondary On Dark and Link On Dark
Added:
- Backpack/Button:
- Big buttons now center it's content to match usages on the app
Added:
-
Backpack/Button:
- Forwarding Content Compression Resistance and Hugging Priority to inner label and icon of the Button.
-
Backpack/Calendar:
- Adding UI Tests for happy paths for calendar
Fixed:
- Backpack/Button:
- Fixing icon sizes on buttons
Added:
- Backpack/Button:
- Introduction of a Deprecated new Legacy Link Button, to support historic cases on the app.
Added:
- Backpack/Button:
- A way to set custom paddings to support historic use cases. Marked it as deprecated as well.
Fixed:
- Backpack/TappableLinkLabel:
- Forward-port: A default textPrimaryColor is set for the text if no custom color is passed
Added:
-
Support for Xcode 13.2 and iOS 15.2
-
Backpack/Button:
- Adding PrimaryOnDark and PrimaryOnLight
Breaking:
-
Backpack/Font:
- Removing deprecated font styles
-
Backpack/Button:
- Removing Outline button style
- Update the colours and spacing to the new styles
- Update the loading state to not change button sizes
Fixed:
- Backpack/TappableLinkLabel:
- A default textPrimaryColor is set for the text if no custom color is passed
Fixed:
- Backpack/Font:
- Fixing bug when attributed text is empty.
Changed:
- Backpack/Font:
- Components use all new text styles internally
- XS Emphasized, Caps and Caps Emphasized to Captions behind the scenes
Breaking:
- Backpack/Font:
- Line Heights and Letter Spacing have been updated!
- Old font styles will be mapped to new styles behind the scenes
Fixed:
- Backpack/TextField:
- Only applying border width if the Border Style is not none
Added:
- Backpack/StarRating:
- New
rounding
property to adjust how the rating value fills in the stars
- New
Fixed:
- Backpack/Calendar:
- Same-Day-Return selection UI
Added:
-
Font sizes have been updated
-
Changed navigation bar font
-
Badge support for icons
-
Badge migrated to Swift
-
Generated code for token
textSecondaryColor
. -
Backpack/Calendar:
- New
timeStone
prop for controlling time. See <link to docs site>.
- New
-
Support for iOS 15 and Xcode 13.1
Breaking:
- Updated deployment target to
iOS 14.0
Fixed:
- Backpack/TextField:
- Fixed an issue with colour contrast for the border of
BPKTextField
s highlighted by accessibility review.
- Fixed an issue with colour contrast for the border of
Added:
- Updated bpk-svgs which brings in the new self-service icons.
Fixed:
- Backpack/Icon:
- Fixed rendering of the small world icons. Previously, the outer border on these icons weren't rendering correctly.
Fixed:
-
Backpack/Switch:
- Reverted back to primary color for the track, this means the dark mode track colour is now Sky Blue Tint 01.
- Set thumb colour to white, this has no effect in current versions of iOS as this matches the system.
-
Backpack/Button:
- Change destructive/secondary border colours to sky gray tint 06 in light mode.
Breaking:
- Backpack/Toast:
- Add an announcement to be read by VoiceOver when a Toast is shown.
Fixed:
- Backpack/TabBarController:
- Fixed a missing
super
call todidMoveToParentViewController:
.
- Fixed a missing
Fixed:
-
Backpack/Badge:
- Font is now bold to align to Figma design.
-
Backpack/StarRating:
- Adjusted dark-mode line colour to align to Figma design.
Fixed:
-
Backpack/Map:
- Increased padding and dark-mode colours to align to Figma design.
-
Backpack/Dialog:
- Adjusted corner radius and spacing to match Figma design.
Fixed:
- Backpack/Chip:
- Increased spacing between icon and text to align to Figma design.
Fixed:
- Backpack/Switch:
- Aligned appearance to Figma by making switch
SkyBlue
.
- Aligned appearance to Figma by making switch
Fixed:
- Backpack/Button:
- Aligned appearance to Figma
Breaking:
- Backpack/HorizontalNavigation:
- Migrated the component to Swift. This has caused regressions in the Objective-C capabilities of the component.
- In Objective-C only the default size of the component is now available.
- In Objective-C some options are no longer supported e.g. the ability to show a notification dot and the support for badges.
- The component adopts the new
BPKIcon
API and enforces the correct usage of icons with the appropriate horizontal navigation size at compile time. - Due to a bug in Swift/UIKit with generic views the component no longer supports theming. Theming can still be achieved with an explicit wrapping view that integrates with
UIAppearance
. - For migration instructions see the guide.
- Backpack/Chip:
- The type of
iconName
has changed from the deprecatedBPKIconName
toBPKIconNameLarge
. Some icons previously used might to be available.
- The type of
Added:
- Backpack/Icon
- Added
car-door
icon.
- Added
Fixed:
-
Migrated to new Backpack Foundations packages,
@skyscanner/bpk-ios
and@skyscanner/bpk-svgs
. -
Backpack/Icon
-
Minor changes to
BPKIcon
which should not affect how they are used or work.
Added:
- Backpack/Icon:
- Added
BPKSmallIconView
,BPKLargeIconView
andBPKXlIconView
- preferred ways to create an icon view. - See the migration guide.
- Added
Added:
- Backpack/Card:
- Added
configuration
which allows cards to be configured for assistive technology as buttons or links.
- Added
Breaking:
- Backpack/Nudger:
- Removed
accessibilityLabelFormatter
fromBPKNudgerConfiguration
. - Added required
label
toBPKNudgerConfiguration
.
- Removed
Fixed:
- Backpack/Nudger:
- Make label bold to align with design.
Added:
- Backpack/Nudger:
- New nudger component - a control for specifying a numerical value that can be adjusted up and down.
Fixed:
- Backpack/Calendar:
reloadData
will now reload all visible cells without causing random cells to blink.
Added:
- Backpack/Map:
- Added shadows to callout views so that they are more distinguishable.
Fixed:
- Backpack/Dialog:
- Added the header trait to the title label within the dialog.
Fixed:
- Backpack/Map:
- Map markers can now be selected by tapping on the callout view.
Fixed:
- Backpack/StarRating
- Updated the star colours to increase contrast.
Added:
- Added
undo
,redo
andcenter-location
icons.
Breaking:
- Backpack/Calendar:
- Selection Configuration instances now require accessibility strings to be passed in. The requirements vary between different configurations.
- Constructors now require a selection configuration to be provided.
Fixed:
- Backpack/Calendar:
- Fixed bug that would cause selecting the same day in range mode to reselect end date instead of new start date.
Breaking:
- Backpack/Calendar:
selectionType
has been removed in favour ofselectionConfiguration
. This is an instance that tells the calendar how selection should behave. Use an instance ofBPKCalendarSelectionConfigurationSingle
,BPKCalendarSelectionConfigurationMultiple
orBPKCalendarSelectionConfigurationRange
in place of the old enum values.- Future change: Range configuration requires several accessibility labels to be provided to help users of assistive technology interact with the calendar.
Added:
- Backpack/Map:
- Added support for an optional icon.
Added:
- Backpack/Calendar:
- Added public method for scrolling a given date into view.
Added:
- Backpack/BottomSheet:
- New delegate for responding to changes in the bottom sheet position.
Fixed:
- Backpack/Calendar:
- Exposed price labels to assistive technology.
Fixed:
-
Backpack/Map:
- Removed position hacks from map annotation constraints.
-
Backpack/Icon:
- Fixed display of social-distancing and price-tag icons.
Fixed:
- Backpack/Calendar:
- Fixed an issue that prevented dates being available to assistive technology.
Fixed:
- Backpack/Icon:
- Fixed issues in the small baggage icons.
Fixed:
- Backpack/Calendar:
- Fixed an display bug when setting the calendar selection type to the same value.
- Calendar will now scroll to the first selected date when initially shown.
Fixed:
- Backpack/Calendar:
- The range selection background is now squared at the edges of the screen to match the design.
Fixed:
- Backpack/Map:
- Fixed an issue causing reused cells to appear as previously selected.
- Fixed an issue causing the map pin to be shown alongside the Backpack marker.
Added:
- Backpack/Map:
- New map view component.
- New map annotation component which can be rendered on a
BPKMapView
.
Fixed:
- Backpack/Calendar:
- Aligned calendar cells to current design. Calendar cells are now
36pt
tall with16pt
emphasised date labels.
- Aligned calendar cells to current design. Calendar cells are now
Added:
- Backpack/BottomSheet:
- Added optional insets argument so that custom inset values can be used. By default the existing insets will be used if none are specified.
Fixed:
- Backpack/Calendar:
- Prevent crash when setting dates programmatically.
Added:
- Backpack/BottomSheet:
- New style of presentation to BottomSheet. Now we are capable to present it modally or persistently by using the
init
parameterpresentationStyle
being.persistent
or.modal
- New style of presentation to BottomSheet. Now we are capable to present it modally or persistently by using the
Added:
- Backpack/TabBarController:
- Added
BPKTabBarItem
with support for specificdot
images.
- Added
Fixed:
- Backpack/Calendar:
- Fixed the range background colour so that it is more visible on dark mode backgrounds.
Fixed:
- Upgraded
TTTAttributedLabel
to the latest version (2.0.0).
Fixed:
- Upgraded
FSCalendar
to the latest version (2.8.2).
Breaking:
- Backpack/Toast:
- Upgraded
MBProgressHUD
to the latest version (1.2.0).
Added:
- Backpack/Icon:
- Added new icons for
price-tag
.
- Added new icons for
Fixed:
- Backpack/Flare:
- Fixed an issue that could cause the flare to seem detached from a moving flare-view.
Fixed:
- The range track background colour is now less vibrant than the start/end dates background colour.
Fixed:
- Backpack/Calendar:
- Small tweaks under the hood to make cell rendering more consistent in different size cells. The difference should be imperceivable.
Added:
- Backpack/Calendar:
- Added price label configuration for showing price labels below calendar cells.
Breaking:
- Backpack/Calendar:
cellStyleFor Date
has been renamedcellDataForDate
and will require an instance ofBPKCalendarTrafficData
to be returned. To migrate easily, please replaceBPKCalendarDateCellStyleNormal
withBPKCalendarTrafficData.normal
etc. ReplaceBPKCalendarDateStyleNormal
withnil
.
Added:
-
Backpack/Icon:
- New icon name classes
BPKXlIconName
,BPKLargeIconName
andBPKSmallIconName
. These are currently unused, but will be needed for new icon APIs that are coming soon. - Added new methods to
BPKIcon
for creating an icon using the new icon name classes.
- New icon name classes
-
Backpack/Appearance:
- Added
BPKAppearance
which can be used to apply common brand colours toUIAppearance
properties.
- Added
-
Backpack/TabBarController:
- Added
UITabBarItem+Backpack
, a category ofUITabBarItem
which can be used to add and remove a small dot from aUITabBarItem
. - Changed
BPKTabBarController
to automatically apply Skyscanner tint colours.
- Added
Added:
- Backpack/Rating:
- New
horizontalPill
layout option, which gives a shorter rating with the title and subtitle next to each other instead of being stacked.
- New
Fixed:
- Backpack/Rating:
- Fixed an issue that caused the wrong font-size to be used unless rating size was explicitly set.
Added:
- Backpack/Calendar
- Added new
BPKCalendarDateCellStyleNoData
enum case to indicate a calendar cell style for which there is no price information available.
- Added new
Fixed:
- Backpack/Calendar
- Updated the calendar date cell styles to match the most up-to-date designs.
- Current day no longer has a special style.
Breaking:
- Backpack/Chip:
- Shadows are no longer supported. The
shaddowEnabled
property has been removed. - We've removed the property
colorUnselectedState
. If a custom colour is provided, it will colour the unselected and disabled states too. - The default chip style is now
outline
instead offilled
.
- Shadows are no longer supported. The
Fixed:
- Backpack/Button:
- Changed the button corner radius from
BPKCornerRadiusXs
(4
) toBPKCornerRadiusSm
(8
).
- Changed the button corner radius from
Breaking:
- Backpack/Radii:
BPKCornerRadiusSm
is now8
instead of4
. To continue using4
, replaceBPKCornerRadiusSm
withBPKCornerRadiusXs
.
Fixed:
- Nothing
- Just testing the release process
Fixed:
- Nothing
- Just testing the release process
Fixed:
- Nothing
- Just testing the release process
Added:
- Backpack/OverlayView
- Added
OverlayView
component for rendering background content with a tint.
- Added
Fixed:
- Backpack/Calendar
- Fixed a bug where the calendar rendered incorrectly with pre-selected dates using range selection.
Added:
-
Backpack/Card:
-
Backpack/Panel:
- The corner radius has been increased from
BPKCornerRadiusSm
toBPKCornerRadiusMd
.
- The corner radius has been increased from
-
Backpack/Radii:
- New
BPKCornerRadiusXs
andBPKCornerRadiusMd
tokens.
- New
Added:
-
Backpack/Spinner:
- New
secondary
style which is dark in light-mode and light in dark-mode.
- New
-
Backpack:
- Upgrade from Swift 4.2 to 5.
Fixed:
-
Backpack/Dialog:
- Reduced body text size.
-
Backpack/NavigationBar:
- Updated the default background color of
backgroundView
to clear.
- Updated the default background color of
Breaking:
- Backpack/Calendar:
- Removed the method
- (BOOL)calendar:(BPKCalendar *)calendar isDateEnabled:(NSDate *)date
inBPKCalendarDelegate
, is now- (BOOL)calendar:(BPKCalendar *) isDateEnabled:(BPKSimpleDate *)date
. If you need theNSDate *
for your implementation use thedateForCalendar:
method onBPKSimpleDate
, passingcalendar.gregorian
for the argument. - The two deprecated methods
- (UIColor *)calendar:(BPKCalendar *)calendar fillColorForDate:(NSDate *)date
and- (UIColor *)calendar:(BPKCalendar *)calendar titleColorForDate:(NSDate *)date
have now been removed. Please usecalendar:cellStyleForDate:
instead.
- Removed the method
Added:
- Backpack/Color:
- Added new class properties on
UIColor
for all Backpack's colours with the prefixbpk
. For exampleskyGray
isUIColor.bpk_skyGray
. In Swift this change means Backpack's colours can be used contextually e.g.myView.backgroundColor = .bpk_skyBlue
.
- Added new class properties on
BREAKING:
-
Backpack/BorderSize:
BorderSize
has been renamedBorderWidth
. To migrate, please update any references toBPKBorderSize
.
-
Backpack/Radii:
- Non-UIKit aligned values have been removed. To migrate, replace any tokens starting
BorderRadius
withCornerRadius
.
- Non-UIKit aligned values have been removed. To migrate, replace any tokens starting
Added:
-
Backpack/BorderSize:
- Added new
UIKit
aligned tokens, namedBPKBorderWidth...
instead ofBPKBorderSize...
.
- Added new
-
Backpack/Radii:
- Added new
UIKit
aligned tokens, namedBPKCornerRadius...
instead ofBPKBorderRadius...
.
- Added new
Fixed:
- Backpack/Icon:
- Reverted
eco-leaf
icon to align better to existing campaigns.
- Reverted
Fixed:
- Backpack/Icon:
- Fixed an issue with the display of the
filter
icon.
- Fixed an issue with the display of the
Fixed:
- Backpack/StarRating:
- Adopted a new design that uses the latest icon set from Backpack.
Fixed:
- Backpack/Icon:
- Reinstated some icons that were accidentally removed.
Breaking:
- Backpack/Icon:
- We've adopted our new icon set! Some icons are now only available at small or large size, whilst most are available at both. Check our design docs to see which are available.
Breaking:
- The minimum deployment target is now iOS 12.0 (previously iOS 11.0).
Fixed:
- Backpack/Color:
- Colours whose values are already defined now reference that colour, instead of redefining it.
- Dynamic colours are now defined using pre-defined Backpack colour properties.
Added:
- Backpack/Chip:
- New
style
property toBPKChip
which can be either filled (default) or outline.
- New
Fixed:
- Aligned swift version to that used in the app.
Fixed:
- Backpack/Calendar:
- Fixed an issue where setting an empty date selection after same day selection would crash the calendar.
Added:
- Backpack/Icon:
- Added new
account--name
,ticket-flexible
andhotel-flexible
icons.
- Added new
Added:
-
Backpack/FlareView:
- Added property for setting
cornerRadius
.
- Added property for setting
-
Backpack/BarChart:
- New
BarChart
component
- New
Breaking:
- Backpack/Snackbar
- Change to text being required and title being optional to align with Android.
Breaking:
- Backpack/Snackbar:
- Added
text
property which was previously missing. - Renamed
BPKSnackbar
's delegate fromBPKSnackbarProtocol
toBPKSnackbarDelegate
. - Renamed
snackbarDismissed:cause:
inBPKSnackbarDelegate
tosnackbar:dismissedWithCause:
. - Changed
BPKSnackbar
API to make it possible to supply an accessibility label for the button in icon only mode. - Removed the ability to use a button with both an icon and text since this is not supported on Android.
- Added
Fixed:
- Backpack/Snackbar
- The Snackbar and its related symbols now show up on the doc site.
- Improved accessibility of Snackbar.
Added: -Backpack/Chip:
- Added support for passing an icon name to display next to the title text.
Breaking:
-
Backpack/Button:
- The title only button no longer hides the title when in the loading state, instead it grows and adds the spinner next to the title like the text + icon variant.
-
Backpack/BottomSheet
- Renamed
BottomSheet
class toBPKBottomSheet
in Swift to be consistent with other components. - Renamed
BackpackFloatingPanelController
class toBPKFloatingPanelController
in Swift to be consistent with other components.
- Renamed
-
Backpack/Theme
-
Backpack/TappableLinkLabel
- Removed some long-deprecated methods.
Added:
- Backpack/FlareView
- Added option for displaying the pointer at the top of the view instead of the bottom.
Fixed
- Backpack/TabBarController:
- Fixed a typo in the component class name.
Fixed
-
Backpack/Dialog:
- A change to
iconDefinition
while the dialog is open will now be respected and the UI will update immediately.
- A change to
-
Backpack/TabBarController:
- Fixed a typo in the component class name.
Added
- Backpack/HorizontalNavigation:
- Added alternate appearance option for using over dark backgrounds in light mode.
Added:
-
Backpack/TabBarController:
- New component which inherits from
UITabBarController.
- New component which inherits from
-
Backpack/TappableLinkLabel:
- New
textColor
prop for changing the non-link text color.
- New
Fixed:
- Backpack/Color:
- Dynamic colours are now defined using pre-defined Backpack colour properties.
Breaking:
- Backpack
- Backpack now consistently uses the
BPK
prefix in Swift.
- Backpack now consistently uses the
Fixed:
- Backpack/Button:
- Fixed an issue that caused the loading spinner to sometimes be rendered out of view for title-only buttons.
Breaking:
- Backpack/Color:
- Removed
secondaryDarkColor
.
- Removed
Added:
- Backpack/HorizontalNavigation
- There's a new
BPKHorizontalNavigationOptionWithBadge
which it could be used to create a new section with a title and a badge.
- There's a new
Added:
-
Backpack/Calendar
- Added method
refreshDateAppearance
for refreshing the appearance of every calendar cell.
- Added method
-
Backpack/BottomSheet:
- New
updateLayout
API for forcing layout refresh on the bottom sheet. Useful, for example, to update bottom sheet size according to content size changes.
- New
Fixed:
-
Backpack/HorizontalNavigation
- HorizontalNavigation now applies its color and size to changed options.
-
Backpack/Icon:
- Updated hotels icon.
Breaking:
- Backpack/HorizontalNavigation
options
onBPKHorizontalNavigation
is now anNSArray<id<BPKHorizontalNavigationOptionType>> *
was previouslyNSArray<BPKHorizontalNavigationOption *> *
.initWithOptions:selected:
onBPKHorizontalNavigation
now takesNSArray<id<BPKHorizontalNavigationOptionType>> *
as its first argument rather thanNSArray<BPKHorizontalNavigationOption *> *
.
Added:
- Backpack/HorizontalNavigation
- Via
makeItem
inBPKHorizontalNavigationOptionType
it's possible to provide custom rendering for the items in the horizontal navigation. - New style with a red notification dot.
- Via
- Backpack/Calendar
- Via
contentOffset
inBPKCalendar
it's possible to modify the underlying collection view's content offset.
- Via
Fixed:
- Backpack/Calendar
- Calendar now doesn't snap to month name when its height changes.
- Calendar range selection colours have been aligned to other platforms.
Added:
- Backpack/BottomSheet:
- New API for presenting a Bottom Sheet without scrollable content. The height of the bottom sheet will be automatically calculated based on its intrinsic height.
Added:
- Backpack/BottomSheet:
- New API that allows presenting a bottom sheet on top of a previous one.
Deprecated:
- Backpack/Calendar
calendar:titleColorForDate:
inBPKCalendarDelegate
has been deprecated in favour ofcalendar:cellStyleForDate:
.calendar:fillColorForDate:
inBPKCalendarDelegate
has been deprecated in favour ofcalendar:cellStyleForDate:
.
Added:
- Backpack/Calendar
- Added a new preferred method for coloured dates in the calendar via
BPKCalendarDateCellStyle
and the new delegate methodcalendar:cellStyleForDate:
. Code that previously usedcalendar:fillColorForDate:
andcalendar:titleColorForDate:
to colour code the calender to show price information should switch to this new method instead. When implementingcalendar:cellStyleForDate:
it's possible to fall back to the old delegate methods by returningBPKCalendarDateCellStyleCustom
in which case the calendar will call these methods on the delegate to style the cell.
- Added a new preferred method for coloured dates in the calendar via
Breaking:
- Backpack/Calendar:
- We've changed some of the Calendar delegate methods as we realised they are not exposing the calendar instance that's calling them.
Fixed:
-
Backpack/Badge:
- Aligned light mode badges to dark mode style.
-
Backpack/Calendar:
- Range selection now uses a solid colour instead of a transparent one, which should lead to less unpredictable behaviour.
Added:
- Backpack/Color:
- New elevation colours:
backgroundElevation01DarkColor
,backgroundElevation01LightColor
,backgroundElevation02DarkColor
,backgroundElevation02LightColor
,backgroundElevation03DarkColor
,backgroundElevation03LightColor
,backgroundElevation01Color
,backgroundElevation02Color
,backgroundElevation03Color
Fixed:
- Backpack/BottomSheet:
- Fixed an issue that caused the bottom section shadow to not update when a user changes their interface-style.
Fixed:
- Backpack/Calendar:
- We've toned down the divider between the week-days and calendar grid so that it's less bright in dark-mode.
Fixed:
- Backpack/Button:
- Backpack/StarRating:
- Backpack/Color:
- Adopted latest dark mode colour specification.
Added:
- Backpack/Tokens
- New
backgroundAlternativeColor
andbackgroundAlternativeSecondaryColor
colours.
- New
Fixed:
-
Backpack/Badge:
- Lightened the dark-mode colours used for
success
andwarning
badges to make them more visually appealing.
- Lightened the dark-mode colours used for
-
Backpack/Snackbar:
- The logic to search the Tab Bar has changed to support
UITabBar
.
- The logic to search the Tab Bar has changed to support
Added:
- Backpack/Font
- Reinstated
BPKFont
's APIs for constructingUIFont
instances. Back in version 2.0 we removed theseBPKFont
methods because the new type scale required us to render text only via attributed strings. With our new typeface, Relative, we have baked these rendering concerns into the typeface itself and we can again useUIFont
instances directly. As always we recommend you prefer higher level components such asBPKLabel
for you text rendering needs.
- Reinstated
Fixed:
- Backpack
- Significantly improved reference documentation.
Fixed:
- Backpack/Button:
- Fixed the disabled link colour in Dark Mode.
Fixed:
-
Backpack/Dialog:
- Significantly improved the behaviour of the dialog in extreme cases.
BPKDialogController
now appropriately constraints the dialog to not grow to a size too large for the viewport.BPKDialogController
now limits how large the dialog grows in large view ports like iPad.BPkDialogView
can now be constrained to stop growing and will handle small viewports by shrinking its content.
-
Backpack/Toast
- Fixed the toast's appearance in dark mode.
Breaking:
- Backpack/Font:
FontMapping
class removed.fontMapping
argument is no longer accepted byBPKFont
.
Fixed:
-
Backpack/Rating:
- Made the outer container an accessibility element so that an accessibility label can be set.
-
Backpack/Calendar:
- Fixed alignment of month headings in RTL languages.
Fixed:
- Backpack/Font:
- Fixed an issue that caused an infinite loop in
BPKFont.
- Fixed an issue that caused an infinite loop in
Breaking:
-
Backpack/Font:
- The
fontMapping
argument is now unused and will be removed in the future. - To enable the Relative typeface globally, a suitable
BPKFontDefinitionProtocol
must be registered withBPKFont
.
- The
-
Backpack/Button
- Property
cornerRadius
is not longer available to customise.
- Property
Added:
-
Backpack/NavigationBar
- Added a property
largetTitleTextAlignment
to support overriding the text alignment of the large title.
- Added a property
-
Backpack/BorderSize
- Backpack border size constants are now available via
Backpack/BorderSize
.
- Backpack border size constants are now available via
-
Backpack/HorizontalNavigation
- Now the navigation scroll horizontally if the content exceed the max width
Fixed:
-
Backpack/HorizontalNavigation:
- Fixed issue where
HorizontalNavigation
would have an animation glitch when updating its options.
- Fixed issue where
-
Backpack/HorizontalNavigation
- Change spacing between items
Added:
- Backpack/NavigationBar
- Added a property
largetTitleTextAlignment
to support overriding the text alignment of the large title.
- Added a property
Fixed:
-
Backpack/Font:
- Removed old brand methods, leaving the API unchanged.
-
Backpack/HorizontalNavigation:
- Fixed issue where
HorizontalNavigation
would have an animation glitch when updating its options.
- Fixed issue where
Added:
- Backpack/Calendar:
- It is now possible to implement a custom method to determine which dates should be enabled/disabled according to some custom criteria.
Fixed:
- Backpack/NavigationBar
- Fixed button positions in RTL.
Fixed:
-
Backpack/Calendar
- Fixed the year pill colours in dark mode.
-
Backpack/Progress
- Fixed the background colour in dark mode.
-
Backpack/StarRating
- Fixed the background colour in dark mode.
Added:
-
Backpack/Snackbar:
- New Snackbar component added
-
Backpack/NavigationBar
- New left and right buttons
Fixed:
-
Backpack/Calendar:
- Disabled dates are now hidden from accessibility tools so that users don't have to flick through dozens of disabled options.
-
Backpack/Spinner:
- The primary style spinner is now
white
in "Dark mode".
- The primary style spinner is now
Added:
- Backpack/Color:
- Added a dynamic
lineColor
to our colour palette.
- Added a dynamic
Fixed:
- Backpack/Button:
- Fixed an issue with interactions when a title has be set, and then reverted to
nil
.
- Fixed an issue with interactions when a title has be set, and then reverted to
Fixed:
- Backpack/Dialog:
- Fixed an issue that caused the flare-view to display off-center on iOS 11.
Fixed:
- Backpack/Button:
- Fixed an issue that caused buttons to resolve the wrong dynamic colours when the interface style has been overridden.
Fixed:
- Backpack/Button
- Fixed a bug that prevented button appearance updating when UI style changes.
Added:
- Backpack/Dialog:
- Added
buttonSize
property so that small buttons can be used.
- Added
Fixed:
- Backpack/Dialog:
- Increased bottom padding to create a visually balanced appearance.
Breaking:
- Backpack/SimpleDate:
- SimpleDate now requires a calendar object for more reliable conversions of dates.
Breaking:
- Backpack/FlareView:
- The
isFlareVisible
property is no longer supported. Flare views will always have a flare.
- The
Added:
- Backpack/Dialog:
- New
flareView
argument which allows a flare view to be configured above the content.
- New
Fixed:
- Backpack/Button
- Revert code to 19.3.0 version
Added:
- Backpack/Dialog:
- New
cornerStyle
property which allows a larger corner-radius to be applied.
- New
Added::
- Backpack/Button:
- Buttons now support
loading
state even without an image present.
- Buttons now support
Fixed:
- Backpack/Rating:
- Fix minor layout issues in
BPKRating
.
- Fix minor layout issues in
Added:
-
Backpack/Icon:
- New
multiple-bookings
icon.
- New
-
Backpack/Color:
- New semantic colours.
Fixed:
- Backpack:
- Made components dark mode compatible.
Breaking:
- Backpack/Theme:
- Theme definitions must now implement
progressBarPrimaryColor
andlinkPrimaryColor
.
- Theme definitions must now implement
Breaking:
- Backpack/Calendar:
SimpleDate
must now be imported usingBackpack/SimpleDate
instead ofBackpack/Calendar
.
Breaking:
- Backpack/Color:
- Removed
underlayColor
color.
- Removed
Added:
-
Backpack/Color:
- Added
underlayColor
color which will be removed in the next release. - Added dark mode compatible background color.
- Added
-
Backpack/Icon:
- Added file and printer icons.
Added:
- Backpack/Button:
- New
isLoading
property which can be used to display a spinner inside the button.
- New
Added:
- Backpack/Duration:
- New Duration class which exposes our animation duration constants.
Fixed:
- Backpack/FlareView:
- Fixed issue that caused a flickering line above the pointer when animated.
Breaking:
- Backpack
- Removed old brand colours and components.
Fixed:
- Backpack:
- Some minor changes to be Xcode 11 compatible
Breaking:
- Backpack:
- Changed the appearance of every component to use our NEW BRAND 🎉
Added:
- Backpack/Color:
- NEW BRAND COLOURS 🎉
Added:
-
Backpack/Rating:
- New
layout
andsize
properties.
- New
-
Backpack/StarRating
- New
BPKStarSizeXLarge
size and user interaction feature
- New
Added:
-
Backpack/Rating:
- New rating component with title and subtitle. Size and layout options coming soon.
-
Backpack/Toast:
- New
BPKToast
component.
- New
Breaking:
- Backpack/Theme
- New properties
ratingLowColor
,ratingMediumColor
andratingHighColor
.
- New properties
Added:
- Backpack/Chip:
- New
isShadowEnabled
property to optionally disable chip's shadows. - New
backgroundTint
property to optionally change the chip background color. - New
colorUnselectedState
property to decide whether the background color should be used in a lighter form for the background.
- New
Fixed:
- Backpack/Card:
- Fixed issue that caused
backgroundColor
to be wrongly reverted to white on press.
- Fixed issue that caused
Fixed:
- Backpack/NavigationBar:
- Made the blur effect lighter to increase text contrast.
Added:
- Backpack/Icon:
- New
single-booking
icon.
- New
Fixed:
- Backpack/NavigationBar:
- Fixed issue that caused starting offset value to be wrong in some circumstances.
Fixed:
- Backpack/TappableLinkLabel:
- Fixed issue that caused links to appear at base size when no theme is applied.
- Prevent titles from appearing partially out of view if scrolled to the wrong place.
Added:
- Backpack/NavigationBar
- Some improvements in the
BPKNavigationBar
animations imitating the native behaviour
- Some improvements in the
Fixed:
- Backpack/NavigationBar:
- Reverted the previous fix in 16.0.0 as it had unintended side-effects
Fixed:
- Backpack/NavigationBar:
- Fixed an issue that would cause the large title to jump when bouncing back from a scroll down.
Changed:
- Dropped iOS 10 support.
Added:
- Backpack/Color
- Added new colours
textPrimaryLightColor
andtextSecondaryLightColor
- Added new colours
Added:
- Backpack/Panel:
- New
style
property which can be eitherBPKPanelStyleDefault
orBPKPanelStyleElevated
.
- New
Fixed:
- Backpack/NavigationBar
- Fixed issue related to the scroll smoothness using the navigation bar
Added:
- Backpack/Dialogs:
- Now the title is optional maintaining all the subviews in the correct place
Fixed:
- Backpack/Theme:
- Updated theme
gray
colours.
- Updated theme
Breaking:
- Backpack/Theme:
- Added
systemGreen
andsystemRed
toBPKThemeDefinition
.
- Added
Added:
- Backpack/FlareView:
- New
FlareView
component
- New
Fixed:
- Backpack/Calendar:
- Fixed an inconsistency in the gray colours used in the Calendar component.
Added:
- Initial version of
BPKNavigationBar
with large titles.
Fixed:
- Backpack/Font:
- Fixed an issue that sometimes causes the wrong font to be selected.
Fixed:
- Backpack/Button:
- Fixed issue with Button pressed state being too subtle.
Added:
- Backpack:
- New
BottomSheet
Swift component for presenting a floating panel similar to the one used in Apple Maps, Stocks and other native Apple apps.
- New
Fixed:
- Backpack/Label:
- Default text colour is now
gray900
as this is a more suitable colour in the new palette.
- Default text colour is now
Breaking:
- Backpack/Dialog
- Icon definition is now encapsulated in a separate object, and is optional.
Added:
- Backpack/Color:
- Updated gray colours
gray50
,gray100
,gray200
,gray300
,gray400
,gray500
,gray700
,gray900
- Deprecated
gray600
andgray800
please update as these will be removed in the future.
- Updated gray colours
Breaking:
- Backpack/Icon
- Added new icons
BPKIconNameSwap
renamedBPKIconNameSwapHorizontal
Added:
- Backpack/Icon
- Added new icons
BPKIconNameSwapVertical
Fixed:
- Backpack/HorizontalNavigation:
- Reduced horizontal spacing between items.
Fixed:
- Backpack/Dialog:
- Fixed bottom padding underneath buttons.
Added:
- Backpack/HorizontalNavigation:
- When creating a
BPKHorizontalNavigationOption
, atag
value can now be provided.
- When creating a
Added:
-
Backpack/HorizontalNavigation:
- Added
HorizontalNavigation
component. - Added small variants.
- Added option to hide the selected item bar.
- Added option to specify an icon for each option.
- Added
-
Backpack/ProgressBar:
- Added
ProgressBar
component.
- Added
Breaking:
- Backpack/Theme:
- Added
horiontalNavigationSelectedColor
property.
- Added
Added:
- Backpack/StarRating
BPKStarRating
is nowIB_DESIGNABLE
.
Changed:
- Backpack/Icon
- Updated
BPKIconNameTrips
with a new design.
- Updated
Added:
- Backpack/StarRating:
- New
StarRating
component to display a rating between 0.0 and 5.0.
- New
- Backpack/Icon:
- New
size
prop onBPKIconView
to control icon size. - New
flipsForRightToLeft
prop onBPKIconView
to support icons with a horizontal direction in a right to left environment.
- New
Fixed:
- Backpack/Dialog:
- Dialog now respects a user's preference for reduced motion and reduced transparency.
- Backpack/BPKTappableLinkLabel:
textAlignment
similar toUILabel
lineBreakMode
similar toUILabel
Added:
- Backpack/Icon
- New icons:
- Added
flight-landing
asBPKIconNameFlightLanding
. - Added
flight-takeoff
asBPKIconNameFlightTakeoff
. - Added
aircraft
asBPKIconNameAircraft
.
- Added
- New icons:
Fixed:
- Backpack/Calendar:
- Fixed layout issues when using range selection in RTL.
Nothing of note!
Added:
- Backpack/Label:
- New method for setting the label font style for a specified range.
Fixed:
-
Backpack/TappableLinkLabel:
- Prevent cutting off parts of text with larger fonts.
-
Backpack/Button
- Icon-only buttons are now always circular regardless of the
cornerRadius
appearance setting.
- Icon-only buttons are now always circular regardless of the
Added:
- Backpack/TappableLinkLabel:
- Added method for adding a link whilst providing Transit Information (an
NSDictionary
) instead of a URL. - New
style
property which can be used when placing the link label over a blue/dark background. - Added
numberOfLines
property.
- Added method for adding a link whilst providing Transit Information (an
Added:
- Backpack/TappableLinkLabel:
- New
TappableLinkLabel
component.
- New
Added:
- Backpack/Icons:
- Updated
bpk-svgs
dependency to get new icons.
- Updated
Added:
- Backpack/TextField:
- Added a new class
BPKTextField
, a subclass ofUITextField
which uses the Skyscanner style.
- Added a new class
Fixed:
- Backpack/TextView:
- Fixed issue where
BPKTextView
didn't set proper styling when user typed.
- Fixed issue where
Fixed:
- Backpack/Button:
- Fixed issue where content color of
BPKButton
didn't change after changing itslinkContentColor
- Fixed issue where content color of
Breaking:
- Backpack/Theme:
- We've deprecated
grayXXColorFor:
methods in favour of usingUI_APPEARANCE_SELECTOR
s.
- We've deprecated
Breaking:
- Backpack/Theme:
BPKContainerController themeContainer
has been renamedcontainer
.BPKContainerController isThemeActive
has been renamedisContainerActive
.
Added:
- Backpack/Theme:
- Added initialiser for creating a
BPKContainerController
with aUIView Class
, instead of insisting on a complete theme definition.
- Added initialiser for creating a
Breaking:
-
Backpack/Theme
- Theme definitions now require a
fontMapping
object attribute of typeBPKFontMapping
.
- Theme definitions now require a
-
Backpack/Font
- A number of
BPKFont
methods now require afontMapping
to provided. This can benil
.
- A number of
Added:
- Backpack/Icon
- Added
heart--outline
asBPKIconNameHeartOutline
.
- Added
Fixed:
- Backpack/Icon
- Updated stroke widths of
heart
,heart--outline
,world-amer
,world-emea
andworld-apac
icons.
- Updated stroke widths of
Added:
- Backpack/Icon
- Added
face--blank
,face--happy
andface--sad
icons.
- Added
Changed:
- Backpack/Icon
- Updated
heart--outline
- Updated
Changed:
- Backpack/Icon
- Updated
heart
,family
- Updated
Added:
- Backpack/Icon
- Added
heart
,heart--outline
,trend--steady
,trend--down
,trend--will-rise
,filter
world--amer
,world--apac
andworld--emea
icons.
- Added
Fixed:
- Backpack/Theme:
- Exposed missing
BPKThemeContainer
interface.
- Exposed missing
Added:
- Backpack/Theme
- Added utilities for getting
gray50Color
,gray100Color
,gray300Color
,gray500Color
,gray700Color
, andgray900Color
.
- Added utilities for getting
Fixed:
- Backpack/Calendar:
- Added
Button
,Selected
, andNot enabled
accessibility traits as appropriate.
- Added
Added:
-
Backpack/Theme:
- Added
featuredButtonContentColor
,featuredButtonGradientStartColor
, andfeaturedButtonGradientEndColor
properties to Backpack theme definitions. - Added
destructiveButtonContentColor
,destructiveButtonBackgroundColor
, anddestructiveButtonBorderColor
properties to Backpack theme definitions.
- Added
-
Backpack/Button:
- Added
featuredContentColor
,featuredGradientStartColor
, andfeaturedGradientEndColor
appearance proxy properties to support theming. - Added
destructiveContentColor
,destructiveBackgroundColor
, anddestructiveBorderColor
appearance proxy properties to support theming.
- Added
Fixed:
- Backpack/Button
- Fixed a bug which meant that button text wasn't properly displayed when set in interface-builder.
Added:
-
Backpack/Theme:
- Added
primaryGradient
property to Backpack theme definitions.
- Added
-
Backpack/Gradient:
- Added a new gradient view
BPKprimaryGradientView
/PrimaryGradientView
suitable for rendering a primary gradient.
- Added a new gradient view
Added:
-
Backpack/Theme:
- Added
buttonCornerRadius
property to Backpack theme definitions.
- Added
-
Backpack/Button:
- Added
cornerRadius
appearance proxy property to support theming.
- Added
Added:
-
Backpack/Theme:
- Added
calendarDateSelectedContentColor
andcalendarDateSelectedBackgroundColor
properties to Backpack theme definitions.
- Added
-
Backpack/Calendar:
- Added
dateSelectedContentColor
anddateSelectedBackgroundColor
appearance proxy properties to support theming.
- Added
Added:
-
Backpack/Theme:
- Added
secondaryButtonContentColor
,secondaryButtonBackgroundColor
andsecondaryButtonBorderColor
properties to Backpack theme definitions.
- Added
-
Backpack/Button:
- Added
secondaryContentColor
,secondaryBackgroundColor
andsecondaryBorderColor
appearance proxy properties to support theming.
- Added
Fixed:
- Backpack/Calendar
- Fixed the background of the header to be transparent.
Added:
-
Backpack/Theme:
- Added
buttonLinkContentColor
property to Backpack theme definitions.
- Added
-
Backpack/Button:
- Added
linkContentColor
appearance proxy property to support theming.
- Added
Added:
-
Backpack/Theme:
- Added
chipPrimaryColor
property to Backpack theme definitions.
- Added
-
Backpack/Chip:
- Added
primaryColor
appearance proxy property to support theming.
- Added
Fixed:
- Backpack/Switch
- Backpack/Theme
- Fixed a race condition bug were
BPKSwitch
when created from code would not correctly support theming.
- Fixed a race condition bug were
Added:
- Backpack/Theme:
BPKThemeContainerController
now returnsself.rootViewController
forforwardingTargetForSelector:
this improves code that makes assumptions about the specific methods available onkeyWindow.rootViewController
when the previousrootViewController
is wrapped in aBPKThemeContainerController
. In debug builds this will cause an assertion error as it is not a behaviour we encourage relying on.
Fixed:
- Backpack/Calendar:
- Added accessibility labels to
BPKCalendar
cells to provide month and year context to screen-readers.
- Added accessibility labels to
Changed:
- Backpack/Icon
- Updated
alert--active
,alert--add
,alert--expired
,alert--remove
,price-alerts
icons.
- Updated
Added:
-
Backpack/Theme:
- Added
primaryButtonContentColor
,primaryButtonGradientStartColor
, andprimaryButtonGradientEndColor
properties to Backpack theme definitions.
- Added
-
Backpack/Button:
- Added
primaryContentColor
,primaryGradientStartColor
, andprimaryGradientEndColor
appearance proxy properties to support theming.
- Added
Added:
- Backpack/Color
- Added colour blending utility, which can combine any two given colours with a specified weighting.
Added:
- Backpack/Theme:
- Added
primaryColor
property to Backpack theme definitions. - Added
primaryColor
helper method toBPKTheme
, which returns the appropriate themed primary colour given a view.
- Added
Added:
- Backpack/Theme
- Theme container controller now holds a reference to the currently applied theme.
Added:
-
Backpack/Spinner
- Added
primaryColor
appearance attribute to support theming.
- Added
-
Backpack/Theme
- Themes now apply
primaryColor
to Backpack Spinner components.
- Themes now apply
Breaking:
- Backpack/Theme
- Theme container classes are no longer exposed by Backpack/Theme. Instead they must be accessed using the
container
method of the themes.
- Theme container classes are no longer exposed by Backpack/Theme. Instead they must be accessed using the
Changed:
- Backpack/Calendar
- New selection mechanism where every selection after a range defined clears the previously selected range
Breaking:
- Backpack/Calendar
- Changed the external interface of the Calendar to use a simple time zone independent date class,
BPKSimpleDate
/SimpleDate
. All methods and properties that previously usedNSDate
in the device's local time zone now useBPKSimpleDate
instead. minDate
,maxDate
, andlocale
inBPKCalendar
/Calendar
are now correctlynonnull
.
- Changed the external interface of the Calendar to use a simple time zone independent date class,
Added:
- Backpack/Calendar
- Added a method:
simpleDateFromDate:
/simpleDate(from:)
toBPKCalendar
/Calendar
to convert fromNSDate
in the device's local time zone toBPKSimpleDate
/SimpleDate
. - Added a method:
dateFromSimpleDate:
/date(from:)
toBPKCalendar
/Calendar
to convert fromBPKSimpleDate
/SimpleDate
toNSDate
in the device's locale time zone. - Added a new initializer to
BPKCalendar
/Calendar
to create a calendar with a predefinedminDate
andmaxDate
. This initializer is preferred.
- Added a method:
- Backpack/Calendar
- Fixes for iPad split screen: Layout updated at the right time (after screen transition completed)
Fixed:
- Backpack/Calendar
- Revert breaking changes that were accidentally included in 6.6.1.
Fixed:
- Backpack/Calendar
- Make sure screen rotation works correctly.
- Fixed layout issues on iPad.
Added:
- Backpack/Calendar
- Exposed some read only properties of the calendar's underlying
scrollView
. These are:contentInset
contentSize
isDecelerating
isTracking
isDragging
- Exposed some read only properties of the calendar's underlying
Fixed:
- Backpack/Button
- Fixed a bug where Backpack buttons would incorrectly lay out as if there was an image if the image was set and then removed.
Added:
- Backpack/Icon
- Added new icons
BPKIconNameEcoLeaf
BPKIconNameHide
- Added new icons
Changed:
- Added a runtime check that all Backpack UI components are being called from the main thread.
Added:
- Backpack/Theme
- New example themes and containers.
Added:
Backpack/Icon
-
Added a new class
BPKIconView
(IconView
in Swift) for displaying icons. It is based onUIImageView
and the perfect choice when you just want to display an icon with a tint.#import <Backpack/Color.h> #import <Backpack/Icon.h> BPKIconView *iconView = [[BPKIconView alloc] initWithIconName:BPKIconNameAccessibility size:BPKIconSizeLarge]; iconView.tintColor = BPKColor.blue500;
-
Fixed:
- Backpack/Button
- Bug fix to ensure disabled style is not overridden when title is set.
- Bug fix to make link button background transparent.
Added:
-
Backpack/Icon
- Added new icons
BPKIconNameSocialLike
BPKIconNameGridLayout
- Added new icons
-
Backpack/Font
- Added new API to make it easier to deal with custom attributes.
attributesForForStyle:withCustomAttributes:
in Objective-C andmakeAttributes(fontStyle:customAttributes:)
in Swift. Note this API will ignore some overrides that would change the text rendering to the point where it is no longer conforming to the Backpack style.
- Added new API to make it easier to deal with custom attributes.
Fixed:
- Backpack/Calendar
- Expose the
NSCalendar
instance used as a read only property.
- Expose the
Added:
- Backpack/Icon
- Added new icons
BPKIconNameSpeaker
- Added new icons
Breaking:
- Bumped deployment target to iOS 10.0.
Fixed:
- The calendar component no longer uses Auto Layout internally. This is to enable it to be used from React Native.
- Internals of the date selection logic for the calendar has been refactored to support usage from React Native.
Breaking:
- Backpack
- Remove all subspecs in favour of a single specification for the whole pod.
Backpack.Font
- Made the API more swifty by renaming the methods in Swift.
Added:
- Backpack/Calendar
- Added ability for a user to select a range of dates beginning and ending on the same day.
Added:
- Backpack/Button
- New
outline
button type which renders just an outline and the text. Designed for use on more colourful backgrounds.
- New
Fixed:
- Backpack/Calendar
- Minor fixes
Breaking:
- Backpack/Font
- XXL and XXXL font sizes are now
30pt
and36pt
(previously36pt
and42pt
). The42pt
font size has been removed for the time being.
- XXL and XXXL font sizes are now
Fixed:
BPKCalendar
:- Minor tweaks
Added:
BPKCalendar
:- Added Calendar component which was kindly contributed by Stark.
Added:
BPKCard
:- Added
cornerStyles
options of small (default) and large.
- Added
Breaking:
BPKShadow
:- Removed
Xl
variant ofBPKShadow
.
- Removed
Fixed:
BPKChip
:- Updated accessibility traits.
Fixed:
- Backpack/Icon:
- Updated
bpk_send_message
icon.
- Updated
Added:
- Backpack/Chip
- Added a new Skyscanner-branded chip component that supports toggling of
selected
state, and can be disabled.
- Added a new Skyscanner-branded chip component that supports toggling of
Added:
Backpack/Gradient:
- Added Baseline Scrim for use as an overlay on images that contain text content.
Added:
- Backpack/Switch
- A new component for showing Skyscanner-branded switches, to be used in place of
UISwitch
.
- A new component for showing Skyscanner-branded switches, to be used in place of
Breaking:
- Backpack/Font
- The new type scale is here and with it some parts of
BPKFont
have been removed, but fear notBPKFont
has gained new capabilities too. See the migration guide below.
- The new type scale is here and with it some parts of
Added:
- Backpack/Badge
- Backpack/Button
- Backpack/Dialog
- Backpack/Label
- Backpack/TextView
- All these component use the new type scale.
The good news are that if you already use one of the higher level components you don't need to do anything. If you are directly using BPKFont
some methods have been removed, specifically those that return UIFont *
directly. The new type scale requires greater control of text rendering, because of this UIFont
instances are not enough to fully qualify text. Example migration
UIFont *font [BPKFont textBase];
// Use `font`
NSAttributedString *attributedString = [BPKFont attributedStringWithFontStyle:BPKFontStyleTextBase content:@"Hello"];
// Use `attributedString`
// There's also `(NSAttributedString *)attributedStringWithFontStyle:(BPKFontStyle)fontStyle content:(NSString *)content textColor:(UIColor *)textColor`
// if you need control of the color use to render the font(the default is gray700).
// `+ (NSDictionary<NSAttributedStringKey, id> *)attributesForFontStyle:(BPKFontStyle)fontStyle` is useful when you need to construct an `NSAttributedString` yourself.
Added:
- Backpack/Icon
- Added new icons
BPKIconNameCallback
BPKIconNameEndCall
BPKIconNameKeypad
BPKIconNameMute
BPKIconNamePhoneCall
BPKIconNameSendMessage
BPKIconNameUnmute
Added:
- Backpack/Dialog
- A new component for showing Skyscanner style alerts and bottom sheets.
Fixed:
- Backpack/Badge
- Backpack/Card
- Backpack/Color
- Backpack/Font
- Backpack/Gradient
- Backpack/Panel
- Swift API updated to follow language conventions.
Fixed:
- Backpack/Card
- Backpack card shadows will now be rendered correctly on MacOS. (Affect snapshot tests only)
Breaking:
- Backpack/Card
- Backpack Card no longer allows
addSubview
to be used. Instead, Cards have asubview
property that can be set.
- Backpack Card no longer allows
Fixed:
- Backpack/Card
- Non-padded cards will now correctly clip bounds of items placed inside.
Added:
- Backpack/Card
- Divided cards now expose
primarySubview
andsecondarySubview
properties
- Divided cards now expose
Fixed:
- Backpack/Icon
- Prevent collision with React Native icon font.
- Prevent assertion error by not attempting to register the icon font if it's already been registered.
Added:
- Backpack/Gradient
BPKGradientLayer
now allowsgradient
beingnil
in which case it will render transparent
- Backpack/Card:
- Added divided card styles.
Fixed:
- Backpack/Button
- Link style
BPKButton
s do not have white background any more.
- Link style
Added:
-
Backpack/TextView
- A
UITextView
subclass with Skyscanner styles.
- A
-
Backpack/Card
- A
UIControl
subclass with Skyscanner card styling.
- A
Added:
-
Backpack/Spinner
- A thin wrapper around
UIActivityIndicatorView
with the Skyscanner colours.
- A thin wrapper around
-
Backpack/Icon
- Added constants for icon names to avoid bugs due to the strongly typed API.
Breaking:
- Backpack/Color
- Update Swift interface for Backpack colours.
BPKColor
is nowBackpack.Color
and the individual colours are class properties.BPKColor.blue500()
becomesBackpack.Color.blue500
.
- Update Swift interface for Backpack colours.
Added:
- Backpack/Icon
- Added new method for creating images for use as templates.
+ (UIImage *)templateIconNamed:name size:
in Objective-C andmakeTemplateIcon(name:size:)
in Swift.
- Added new method for creating images for use as templates.
- Backpack/Button
- Introducing the Backpack button. Includes all Backpack button styles, support for leading and trailing icons as well as icon only buttons.
Added:
- Automated API docs publishing to https://backpack.github.io/ios
Added:
- Backpack/Icon
- Added
iconMapping
property for an exhaustive list of available icon names.
- Added
Breaking:
- Reworked
BPKGradient
interface.stops
now has the typeNSArray<NSNumber *> *
instead ofNSArray<NSValue *> *
ofCGPoint
s. AstartPoint
andendPoint
of typeCGPoint
has been introduced andstops
now indicate how far along the line formed by those two points the color sits. - Moved
startPointForDirection
andendPointForDirection
from being c functions to being class methods onBPPKGradient
.
Added:
- Added two new initializers to
BPKGradient
:-initWithColors:stops:startPoint:endPoint
and-initWithColors:startPoint:endPoint
. BPKGradientView
(Backpack.GradientView
in Swift) for drawing instance ofBPKGradient
.BPKIcon
(Backpack.Icon
in Swift) for rendering Backpack icons.
Added:
- Introducing
Backpack/Label
, the label component.
Added:
- Introducing
Backpack/Panel
, the panel component. - Introducing
Backpack/Badge
, the badge component.
Note: 0.8.0
was skipped because of a bug.
- Backpack gradient via
BPKGradient
and theBackpack/Gradient
subpsec.
Fixed:
- The generated code has been reordered due to changes in the underlying
bpk-tokens
package.
This release ended up broken don't use this version.
Breaking:
- The
color
prefix inBPKColor
methods have been removed as it was deemed to be redundant. Thanks to @danielnagy81 for contributing.
Added:
- Added
[BPKColor clear]
. Thanks to @danielnagy81 for contributing.
Fixed:
- Ensure that the root pod specification can be used and that the
Backpack/Backpack.h
import works as expected.
Added:
- Backpack shadows via
BPKShadow
and theBackpack/Shadow
subpsec.
Added:
- Backpack radii constants via
BpkRadii
and theBackpack/Radii
subspec.
Added:
- Backpack spacing constants via
BpkSpacing
and theBackpack/Spacing
subspec.
Added:
- Introduced Backpack Font stack via
BPKFont
and theBackpack/Font
subspec.
Breaking:
- Moved colours to a subspec in
Backpack/Color
.
Use as
#import <Backpack/Color.h>
[BPKColor colorBlue500];
Dummy release to test, release automation.
Initial release of Backpack for iOS featuring color tokens. Usage
#import <Backpack/Backpack.h>
[BPKColor colorBlue500];