mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-09-18 21:50:56 +00:00
#1693 (2022 Redesign)
Feeds list: - Fixed dark areas next to nested folders. - The feeds list background colors now match the web. - Adjusted the color of the icons. - Changing the font size or comfort layout no longer dismisses the menu or reloads. Feed detail: - A story with a short title in two-line mode now has a shorter cell. - Fixed multiple rows being selected. - Comfortable layout now has larger top and bottom margins. - Fixed notification icon in menu. - Fixed saved_searches appearing in move submenu. - Adjusted the height for feeds. - Changing the title, image, font size, or comfort layout no longer dismisses the menu or reloads. Story: - Lighter header color. - Updated icons and removed borders for share/save/train buttons. - Updated the trainer popover to use the new style.
This commit is contained in:
parent
a19faeaf1d
commit
17e554e442
13 changed files with 86 additions and 46 deletions
|
@ -32,7 +32,7 @@
|
|||
#import "StoryTitleAttributedString.h"
|
||||
#import "NewsBlur-Swift.h"
|
||||
|
||||
#define kTableViewRowHeight 55;
|
||||
#define kTableViewRowHeight 70;
|
||||
#define kTableViewRiverRowHeight 90;
|
||||
#define kTableViewShortRowDifference 18;
|
||||
|
||||
|
@ -1864,6 +1864,8 @@ heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|||
NSString *spacing = [[NSUserDefaults standardUserDefaults] objectForKey:@"feed_list_spacing"];
|
||||
if ([spacing isEqualToString:@"compact"]) {
|
||||
height -= kTableViewShortRowDifference;
|
||||
} else {
|
||||
height += kTableViewShortRowDifference;
|
||||
}
|
||||
|
||||
UIFontDescriptor *fontDescriptor = [self fontDescriptorUsingPreferredSize:UIFontTextStyleCaption1];
|
||||
|
@ -1876,7 +1878,7 @@ heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|||
NSString *content = [story[@"story_content"] convertHTML];
|
||||
|
||||
if (content.length < 50 && [story[@"story_title"] length] < 30) {
|
||||
return height + font.pointSize * 3;
|
||||
return height + font.pointSize * 2;
|
||||
} else if (content.length < 50 && [story[@"story_title"] length] >= 30) {
|
||||
return height + font.pointSize * 5;
|
||||
} else if (content.length < 100) {
|
||||
|
@ -1887,7 +1889,13 @@ heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|||
return height + font.pointSize * 9;
|
||||
}
|
||||
} else {
|
||||
return height + font.pointSize * 5;
|
||||
NSDictionary *story = [self getStoryAtRow:indexPath.row];
|
||||
|
||||
if ([story[@"story_title"] length] < 40) {
|
||||
return height + font.pointSize * 3;
|
||||
} else {
|
||||
return height + font.pointSize * 4;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return height + font.pointSize * 2;
|
||||
|
@ -2297,7 +2305,7 @@ didEndSwipingSwipingWithState:(MCSwipeTableViewCellState)state
|
|||
}];
|
||||
}
|
||||
|
||||
[viewController addTitle:@"Notifications" iconName:@"dialog-notifications" selectionShouldDismiss:YES handler:^{
|
||||
[viewController addTitle:@"Notifications" iconName:@"dialog-notifications" iconColor:UIColorFromRGB(0xD58B4F) selectionShouldDismiss:YES handler:^{
|
||||
[self
|
||||
openNotificationsWithFeed:[NSString stringWithFormat:@"%@", [self.appDelegate.storiesCollection.activeFeed objectForKey:@"id"]]];
|
||||
}];
|
||||
|
@ -2354,7 +2362,7 @@ didEndSwipingSwipingWithState:(MCSwipeTableViewCellState)state
|
|||
NSArray *titles = @[@"Title", @"content_preview_small.png", @"content_preview_medium.png", @"content_preview_large.png"];
|
||||
NSArray *values = @[@"title", @"short", @"medium", @"long"];
|
||||
|
||||
[viewController addSegmentedControlWithTitles:titles values:values preferenceKey:preferenceKey selectionShouldDismiss:YES handler:^(NSUInteger selectedIndex) {
|
||||
[viewController addSegmentedControlWithTitles:titles values:values preferenceKey:preferenceKey selectionShouldDismiss:NO handler:^(NSUInteger selectedIndex) {
|
||||
[self.appDelegate resizePreviewSize];
|
||||
}];
|
||||
|
||||
|
@ -2371,7 +2379,7 @@ didEndSwipingSwipingWithState:(MCSwipeTableViewCellState)state
|
|||
titles = @[@"No image", @"image_preview_small_left.png", @"image_preview_large_left.png", @"image_preview_large_right.png", @"image_preview_small_right.png"];
|
||||
values = @[@"none", @"small_left", @"large_left", @"large_right", @"small_right"];
|
||||
|
||||
[viewController addSegmentedControlWithTitles:titles values:values preferenceKey:preferenceKey selectionShouldDismiss:YES handler:^(NSUInteger selectedIndex) {
|
||||
[viewController addSegmentedControlWithTitles:titles values:values preferenceKey:preferenceKey selectionShouldDismiss:NO handler:^(NSUInteger selectedIndex) {
|
||||
[self.appDelegate resizePreviewSize];
|
||||
}];
|
||||
|
||||
|
@ -2379,7 +2387,7 @@ didEndSwipingSwipingWithState:(MCSwipeTableViewCellState)state
|
|||
titles = @[@"XS", @"S", @"M", @"L", @"XL"];
|
||||
values = @[@"xs", @"small", @"medium", @"large", @"xl"];
|
||||
|
||||
[viewController addSegmentedControlWithTitles:titles values:values preferenceKey:preferenceKey selectionShouldDismiss:YES handler:^(NSUInteger selectedIndex) {
|
||||
[viewController addSegmentedControlWithTitles:titles values:values preferenceKey:preferenceKey selectionShouldDismiss:NO handler:^(NSUInteger selectedIndex) {
|
||||
[self.appDelegate resizeFontSize];
|
||||
}];
|
||||
|
||||
|
@ -2398,9 +2406,9 @@ didEndSwipingSwipingWithState:(MCSwipeTableViewCellState)state
|
|||
titles = @[@"Compact", @"Comfortable"];
|
||||
values = @[@"compact", @"comfortable"];
|
||||
|
||||
[viewController addSegmentedControlWithTitles:titles values:values defaultValue:@"comfortable" preferenceKey:preferenceKey selectionShouldDismiss:YES handler:^(NSUInteger selectedIndex) {
|
||||
[viewController addSegmentedControlWithTitles:titles values:values defaultValue:@"comfortable" preferenceKey:preferenceKey selectionShouldDismiss:NO handler:^(NSUInteger selectedIndex) {
|
||||
[self.appDelegate.feedsViewController reloadFeedTitlesTable];
|
||||
[self reloadStories];
|
||||
[self reloadData];
|
||||
}];
|
||||
|
||||
[viewController addThemeSegmentedControl];
|
||||
|
@ -2735,7 +2743,7 @@ didEndSwipingSwipingWithState:(MCSwipeTableViewCellState)state
|
|||
NSString *title = folder;
|
||||
NSString *iconName = @"menu_icn_move.png";
|
||||
|
||||
if (![title hasPrefix:@"river_"] && ![title hasSuffix:@"_stories"]) {
|
||||
if (![title hasPrefix:@"river_"] && ![title hasSuffix:@"_stories"] && ![title hasPrefix:@"saved_"]) {
|
||||
if ([title isEqualToString:@"everything"]) {
|
||||
title = @"Top Level";
|
||||
iconName = @"menu_icn_all.png";
|
||||
|
@ -2745,7 +2753,7 @@ didEndSwipingSwipingWithState:(MCSwipeTableViewCellState)state
|
|||
NSArray *components = [title componentsSeparatedByString:@" ▸ "];
|
||||
title = components.lastObject;
|
||||
for (NSUInteger idx = 0; idx < components.count; idx++) {
|
||||
title = [@"\t" stringByAppendingString:title];
|
||||
title = [@"\t\t" stringByAppendingString:title];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2827,8 +2835,10 @@ didEndSwipingSwipingWithState:(MCSwipeTableViewCellState)state
|
|||
NSIndexPath *offsetIndexPath = [NSIndexPath indexPathForRow:(rowIndex - offset) inSection:0];
|
||||
NSIndexPath *oldIndexPath = storyTitlesTable.indexPathForSelectedRow;
|
||||
|
||||
[self tableView:storyTitlesTable deselectRowAtIndexPath:oldIndexPath animated:YES];
|
||||
[self tableView:storyTitlesTable selectRowAtIndexPath:indexPath animated:YES];
|
||||
if (![indexPath isEqual:oldIndexPath]) {
|
||||
[self tableView:storyTitlesTable deselectRowAtIndexPath:oldIndexPath animated:YES];
|
||||
[self tableView:storyTitlesTable selectRowAtIndexPath:indexPath animated:YES];
|
||||
}
|
||||
|
||||
// check to see if the cell is completely visible
|
||||
CGRect cellRect = [storyTitlesTable rectForRowAtIndexPath:indexPath];
|
||||
|
|
|
@ -190,8 +190,15 @@ static UIFont *indicatorFont = nil;
|
|||
NSString *preview = [[NSUserDefaults standardUserDefaults] stringForKey:@"story_list_preview_images_size"];
|
||||
BOOL isSmall = [preview isEqualToString:@"small"] || [preview isEqualToString:@"small_left"] || [preview isEqualToString:@"small_right"];
|
||||
BOOL isLeft = [preview isEqualToString:@"small_left"] || [preview isEqualToString:@"large_left"];
|
||||
NSString *spacing = [[NSUserDefaults standardUserDefaults] objectForKey:@"feed_list_spacing"];
|
||||
BOOL isComfortable = ![spacing isEqualToString:@"compact"];
|
||||
|
||||
CGRect rect = CGRectInset(r, 12, 12);
|
||||
CGFloat comfortMargin = isComfortable ? 10 : 0;
|
||||
|
||||
riverPadding += comfortMargin;
|
||||
riverPreview += comfortMargin;
|
||||
|
||||
CGFloat previewHorizMargin = isSmall ? 14 : 0;
|
||||
CGFloat previewVertMargin = isSmall ? 36 : 0;
|
||||
CGFloat imageWidth = isSmall ? 60 : 80;
|
||||
|
@ -309,7 +316,7 @@ static UIFont *indicatorFont = nil;
|
|||
textColor = UIColorFromLightSepiaMediumDarkRGB(0x686868, 0x686868, 0xA0A0A0, 0x808080);
|
||||
}
|
||||
|
||||
NSInteger siteTitleY = (20 - font.pointSize/2)/2;
|
||||
NSInteger siteTitleY = (20 + comfortMargin - font.pointSize/2)/2;
|
||||
[cell.siteTitle drawInRect:CGRectMake(leftMargin - feedOffset + 20, siteTitleY, rect.size.width - 20, 20)
|
||||
withAttributes:@{NSFontAttributeName: font,
|
||||
NSForegroundColorAttributeName: textColor,
|
||||
|
@ -394,7 +401,7 @@ static UIFont *indicatorFont = nil;
|
|||
CGFloat boundingRows = cell.isShort ? 1.5 : 3;
|
||||
|
||||
if (!cell.isShort && (self.cell.textSize == FeedDetailTextSizeMedium || self.cell.textSize == FeedDetailTextSizeLong)) {
|
||||
boundingRows = (r.size.height - 30 - CGRectGetMaxY(storyTitleFrame)) / font.pointSize;
|
||||
boundingRows = (r.size.height - 30 - comfortMargin - CGRectGetMaxY(storyTitleFrame)) / font.pointSize;
|
||||
}
|
||||
|
||||
CGSize contentSize = [cell.storyContent
|
||||
|
@ -404,9 +411,9 @@ static UIFont *indicatorFont = nil;
|
|||
NSParagraphStyleAttributeName: paragraphStyle}
|
||||
context:nil].size;
|
||||
CGFloat textRows = contentSize.height / font.pointSize;
|
||||
int storyContentY = r.size.height - 16 - 4 - ((font.pointSize * textRows + font.lineHeight) + contentSize.height) / 2;
|
||||
int storyContentY = r.size.height - 16 - comfortMargin - 4 - ((font.pointSize * textRows + font.lineHeight) + contentSize.height) / 2;
|
||||
if (cell.isShort) {
|
||||
storyContentY = r.size.height - 10 - 4 - ((font.pointSize + font.lineHeight) + contentSize.height)/2;
|
||||
storyContentY = r.size.height - 10 - comfortMargin - 4 - ((font.pointSize + font.lineHeight) + contentSize.height)/2;
|
||||
}
|
||||
|
||||
[cell.storyContent
|
||||
|
@ -423,7 +430,7 @@ static UIFont *indicatorFont = nil;
|
|||
}
|
||||
|
||||
// story date
|
||||
int storyAuthorDateY = r.size.height - 18;
|
||||
int storyAuthorDateY = r.size.height - 18 - comfortMargin;
|
||||
|
||||
if (cell.isRead) {
|
||||
font = [UIFont fontWithName:@"WhitneySSm-Medium" size:11];
|
||||
|
|
|
@ -1093,7 +1093,7 @@ static NSArray<NSString *> *NewsBlurTopSectionNames;
|
|||
NSArray *titles = @[@"XS", @"S", @"M", @"L", @"XL"];
|
||||
NSArray *values = @[@"xs", @"small", @"medium", @"large", @"xl"];
|
||||
|
||||
[viewController addSegmentedControlWithTitles:titles values:values preferenceKey:preferenceKey selectionShouldDismiss:YES handler:^(NSUInteger selectedIndex) {
|
||||
[viewController addSegmentedControlWithTitles:titles values:values preferenceKey:preferenceKey selectionShouldDismiss:NO handler:^(NSUInteger selectedIndex) {
|
||||
[self.appDelegate resizeFontSize];
|
||||
}];
|
||||
|
||||
|
@ -1101,9 +1101,9 @@ static NSArray<NSString *> *NewsBlurTopSectionNames;
|
|||
titles = @[@"Compact", @"Comfortable"];
|
||||
values = @[@"compact", @"comfortable"];
|
||||
|
||||
[viewController addSegmentedControlWithTitles:titles values:values defaultValue:@"comfortable" preferenceKey:preferenceKey selectionShouldDismiss:YES handler:^(NSUInteger selectedIndex) {
|
||||
[viewController addSegmentedControlWithTitles:titles values:values defaultValue:@"comfortable" preferenceKey:preferenceKey selectionShouldDismiss:NO handler:^(NSUInteger selectedIndex) {
|
||||
[self reloadFeedTitlesTable];
|
||||
[self.appDelegate.feedDetailViewController reloadStories];
|
||||
[self.appDelegate.feedDetailViewController reloadData];
|
||||
}];
|
||||
|
||||
[viewController addThemeSegmentedControl];
|
||||
|
|
|
@ -37,6 +37,9 @@
|
|||
[subview removeFromSuperview];
|
||||
}
|
||||
|
||||
[UIColorFromRGB(0xF7F8F5) set];
|
||||
CGContextFillRect(context, rect);
|
||||
|
||||
NSString *folderName = appDelegate.dictFoldersArray[section];
|
||||
NSString *collapseKey = [NSString stringWithFormat:@"folderCollapsed:%@", folderName];
|
||||
bool isFolderCollapsed = [userPreferences boolForKey:collapseKey];
|
||||
|
@ -96,10 +99,8 @@
|
|||
// create the parent view that will hold header Label
|
||||
UIView* customView = [[UIView alloc] initWithFrame:rect];
|
||||
|
||||
[UIColorFromRGB(0xF7F8F5) set];
|
||||
CGContextFillRect(context, rect);
|
||||
|
||||
// Folder title
|
||||
UIColor *backgroundColor = UIColorFromRGB(0xEAECE6);
|
||||
UIColor *textColor = UIColorFromRGB(0x4C4D4A);
|
||||
UIFontDescriptor *boldFontDescriptor = [self fontDescriptorUsingPreferredSize:UIFontTextStyleCaption1];
|
||||
UIFont *font = [UIFont fontWithName:@"WhitneySSm-Medium" size:boldFontDescriptor.pointSize];
|
||||
|
@ -123,7 +124,12 @@
|
|||
folderTitle = @"Saved Searches";
|
||||
} else {
|
||||
folderTitle = folderName;
|
||||
backgroundColor = UIColorFromRGB(0xF7F8F5);
|
||||
}
|
||||
|
||||
[backgroundColor set];
|
||||
CGContextFillRect(context, rect);
|
||||
|
||||
UIColor *shadowColor = UIColorFromRGB(0xF0F2E9);
|
||||
CGContextSetShadowWithColor(context, CGSizeMake(0, 1), 0, [shadowColor CGColor]);
|
||||
|
||||
|
@ -274,6 +280,9 @@
|
|||
}
|
||||
allowLongPress = YES;
|
||||
}
|
||||
|
||||
folderImage = [folderImage imageWithTintColor:UIColorFromRGB(0x95968F)];
|
||||
|
||||
[folderImage drawInRect:CGRectMake(rect.origin.x + folderImageViewX, CGRectGetMidY(rect)-height/2, width, height)];
|
||||
|
||||
[customView setAutoresizingMask:UIViewAutoresizingNone];
|
||||
|
|
|
@ -1277,7 +1277,7 @@
|
|||
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
|
||||
// trainerViewController.modalPresentationStyle=UIModalPresentationFormSheet;
|
||||
// [navController presentViewController:trainerViewController animated:YES completion:nil];
|
||||
[self showPopoverWithViewController:self.trainerViewController contentSize:CGSizeMake(420, 382) sender:sender];
|
||||
[self showPopoverWithViewController:self.trainerViewController contentSize:CGSizeMake(500, 630) sender:sender];
|
||||
} else {
|
||||
if (self.trainNavigationController == nil) {
|
||||
self.trainNavigationController = [[UINavigationController alloc]
|
||||
|
@ -1294,7 +1294,7 @@
|
|||
trainerViewController.storyTrainer = YES;
|
||||
trainerViewController.feedLoaded = YES;
|
||||
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
|
||||
[self showPopoverWithViewController:self.trainerViewController contentSize:CGSizeMake(420, 382) sender:sender];
|
||||
[self showPopoverWithViewController:self.trainerViewController contentSize:CGSizeMake(500, 630) sender:sender];
|
||||
} else {
|
||||
if (self.trainNavigationController == nil) {
|
||||
self.trainNavigationController = [[UINavigationController alloc]
|
||||
|
|
|
@ -845,17 +845,17 @@
|
|||
"<div class='NB-share-wrapper'><div class='NB-share-inner-wrapper'>"
|
||||
" <div id=\"NB-share-button-id\" class='NB-share-button NB-train-button NB-button'>"
|
||||
" <a href=\"http://ios.newsblur.com/train\"><div>"
|
||||
" <span class=\"NB-icon\"></span> Train"
|
||||
" Train <span class=\"NB-icon\"></span>"
|
||||
" </div></a>"
|
||||
" </div>"
|
||||
" <div id=\"NB-share-button-id\" class='NB-share-button NB-button %@'>"
|
||||
" <a href=\"http://ios.newsblur.com/share\"><div>"
|
||||
" <span class=\"NB-icon\"></span> %@"
|
||||
" %@ <span class=\"NB-icon\"></span>"
|
||||
" </div></a>"
|
||||
" </div>"
|
||||
" <div id=\"NB-share-button-id\" class='NB-share-button NB-save-button NB-button %@'>"
|
||||
" <a href=\"http://ios.newsblur.com/save/save/\"><div>"
|
||||
" <span class=\"NB-icon\"></span> %@"
|
||||
" %@ <span class=\"NB-icon\"></span>"
|
||||
" </div></a>"
|
||||
" </div>"
|
||||
"</div></div></div>",
|
||||
|
|
|
@ -200,18 +200,20 @@
|
|||
}
|
||||
|
||||
- (NSString *)makeTrainerSections {
|
||||
NSString *heading = @"<div class=\"NB-trainer-heading\">What do you <b class=\"NB-trainer-heading-like\">👍 like</b> and <b class=\"NB-trainer-heading-dislike\">dislike 👎</b> about this story?</div>";
|
||||
NSString *storyAuthor = self.feedTrainer ? [self makeFeedAuthors] : [self makeStoryAuthor];
|
||||
NSString *storyTags = self.feedTrainer ? [self makeFeedTags] : [self makeStoryTags];
|
||||
NSString *storyTitle = self.feedTrainer ? [self makeFeedTitles] : [self makeTitle];
|
||||
NSString *storyPublisher = [self makePublisher];
|
||||
|
||||
NSString *htmlString = [NSString stringWithFormat:@
|
||||
"<div class=\"NB-trainer-inner\">"
|
||||
"%@<div class=\"NB-trainer-inner\">"
|
||||
" <div class=\"NB-trainer-title NB-trainer-section\">%@</div>"
|
||||
" <div class=\"NB-trainer-author NB-trainer-section\">%@</div>"
|
||||
" <div class=\"NB-trainer-tags NB-trainer-section\">%@</div>"
|
||||
" <div class=\"NB-trainer-publisher NB-trainer-section\">%@</div>"
|
||||
"</div>",
|
||||
heading,
|
||||
storyTitle,
|
||||
storyAuthor,
|
||||
storyTags,
|
||||
|
|
|
@ -93,6 +93,7 @@
|
|||
17997C5827A8FDD100483E69 /* WidgetDebugTimer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17997C5727A8FDD100483E69 /* WidgetDebugTimer.swift */; };
|
||||
179DD9CF23DFDD51007BFD21 /* CloudKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 179DD9CE23DFDD51007BFD21 /* CloudKit.framework */; };
|
||||
17A396D924F86A8F0023C9E2 /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 17A396D824F86A8F0023C9E2 /* MainInterface.storyboard */; };
|
||||
17A92A3C289B7C6B00AB0A78 /* saved-stories@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 17A92A3B289B7C6B00AB0A78 /* saved-stories@2x.png */; };
|
||||
17AACFE122279A3C00DE6EA4 /* autoscroll_resume@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 17AACFD722279A3900DE6EA4 /* autoscroll_resume@2x.png */; };
|
||||
17AACFE222279A3C00DE6EA4 /* autoscroll_off.png in Resources */ = {isa = PBXBuildFile; fileRef = 17AACFD822279A3900DE6EA4 /* autoscroll_off.png */; };
|
||||
17AACFE322279A3C00DE6EA4 /* autoscroll_slower.png in Resources */ = {isa = PBXBuildFile; fileRef = 17AACFD922279A3A00DE6EA4 /* autoscroll_slower.png */; };
|
||||
|
@ -835,6 +836,7 @@
|
|||
179DD9CC23DFD20E007BFD21 /* BridgingHeader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BridgingHeader.h; path = "Other Sources/BridgingHeader.h"; sourceTree = "<group>"; };
|
||||
179DD9CE23DFDD51007BFD21 /* CloudKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CloudKit.framework; path = System/Library/Frameworks/CloudKit.framework; sourceTree = SDKROOT; };
|
||||
17A396D824F86A8F0023C9E2 /* MainInterface.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = MainInterface.storyboard; sourceTree = "<group>"; };
|
||||
17A92A3B289B7C6B00AB0A78 /* saved-stories@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "saved-stories@2x.png"; sourceTree = "<group>"; };
|
||||
17AACFD722279A3900DE6EA4 /* autoscroll_resume@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "autoscroll_resume@2x.png"; sourceTree = "<group>"; };
|
||||
17AACFD822279A3900DE6EA4 /* autoscroll_off.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = autoscroll_off.png; sourceTree = "<group>"; };
|
||||
17AACFD922279A3A00DE6EA4 /* autoscroll_slower.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = autoscroll_slower.png; sourceTree = "<group>"; };
|
||||
|
@ -2160,6 +2162,7 @@
|
|||
FFDD848916E8EBF8000AA0A2 /* train@2x.png */,
|
||||
FFDD848416E8EB1E000AA0A2 /* share.png */,
|
||||
FFDD848516E8EB1E000AA0A2 /* share@2x.png */,
|
||||
17A92A3B289B7C6B00AB0A78 /* saved-stories@2x.png */,
|
||||
FFDD846816E88722000AA0A2 /* clock.png */,
|
||||
FFDD846916E88722000AA0A2 /* clock@2x.png */,
|
||||
FF62820C1A1160DD00271FDB /* add_tag.png */,
|
||||
|
@ -3613,6 +3616,7 @@
|
|||
FFE816AD17E29D71008AF4B0 /* big_world_white.png in Resources */,
|
||||
17E2AED2286556CC000FAB5B /* icons8-quadcopter-100.png in Resources */,
|
||||
17C5BA631CA39AA100F5961C /* unread_blue.png in Resources */,
|
||||
17A92A3C289B7C6B00AB0A78 /* saved-stories@2x.png in Resources */,
|
||||
E1D123FE1C66753D00434F40 /* Localizable.stringsdict in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
|
|
BIN
clients/ios/Resources/saved-stories@2x.png
Normal file
BIN
clients/ios/Resources/saved-stories@2x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2 KiB |
Binary file not shown.
Before Width: | Height: | Size: 820 B After Width: | Height: | Size: 1.5 KiB |
Binary file not shown.
Before Width: | Height: | Size: 707 B After Width: | Height: | Size: 1.5 KiB |
|
@ -520,7 +520,7 @@ div + p {
|
|||
|
||||
.NB-header {
|
||||
line-height: 1.7em;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#FEFEFE), to(#F3F4EF));
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#FEFEFE), to(#F9F9F7));
|
||||
text-shadow: 0 1px 0 rgba(255, 255, 255, .5);
|
||||
overflow: hidden;
|
||||
max-width: none;
|
||||
|
@ -835,7 +835,7 @@ a.NB-show-profile {
|
|||
background: transparent;
|
||||
color: rgba(0, 0, 0, 0.25);
|
||||
text-shadow: 0 1px 0 rgba(255, 255, 255, .5);
|
||||
border: 1px solid rgb(0, 0, 0, 0.25);
|
||||
border: 0px;
|
||||
border-radius: 4px;
|
||||
line-height: 18px;
|
||||
}
|
||||
|
@ -879,7 +879,7 @@ a.NB-show-profile {
|
|||
width: 25px;
|
||||
display: inline-block;
|
||||
height: 16px;
|
||||
margin: 0 2px 0 -12px;
|
||||
margin: 0 2px 0 12px;
|
||||
vertical-align: text-bottom;
|
||||
opacity: .7;
|
||||
}
|
||||
|
@ -890,7 +890,7 @@ a.NB-show-profile {
|
|||
}
|
||||
|
||||
.NB-button.NB-save-button .NB-icon {
|
||||
background: url("clock@2x.png") no-repeat 0 0;
|
||||
background: url("saved-stories@2x.png") no-repeat 0 0;
|
||||
background-size: 16px;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,6 +9,24 @@
|
|||
|
||||
}
|
||||
|
||||
.NB-trainer-heading {
|
||||
padding: 16px;
|
||||
font-size: 22px;
|
||||
font-weight: bold;
|
||||
color: #303030;
|
||||
text-shadow: 1px 1px 0 rgba(255,255,255,.5);
|
||||
}
|
||||
|
||||
.NB-trainer-heading-like {
|
||||
color: #3d931b;
|
||||
background-size: 24px;
|
||||
}
|
||||
|
||||
.NB-trainer-heading-dislike {
|
||||
color: #932c15;
|
||||
background-size: 24px;
|
||||
}
|
||||
|
||||
.NB-trainer-section {
|
||||
font-size: 13px;
|
||||
|
||||
|
@ -21,7 +39,6 @@
|
|||
.NB-trainer-section-inner {
|
||||
margin: 16px 0 0;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 0 8px rgba(0, 0, 0, .6);
|
||||
}
|
||||
.NB-trainer-publisher .NB-trainer-section-inner {
|
||||
margin-bottom: 16px;
|
||||
|
@ -29,13 +46,12 @@
|
|||
|
||||
.NB-trainer-section-title {
|
||||
font-size: 15px;
|
||||
text-transform: uppercase;
|
||||
padding: 4px 12px;
|
||||
background-color: #F0F8F2;
|
||||
|
||||
padding: 8px 12px 8px;
|
||||
background-color: #E3ECF8;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#E3ECF8), to(#CBDBF5));
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#E9ECE4), to(#EAECE5));
|
||||
text-shadow: 0 1px 0 #F2F6FE;
|
||||
border-top: 1px solid #D1DAF7;
|
||||
border-bottom: 1px solid #A1A9CF;
|
||||
|
@ -76,7 +92,6 @@
|
|||
-webkit-tap-highlight-color: none;
|
||||
}
|
||||
.NB-title-info {
|
||||
text-transform: uppercase;
|
||||
color: #C0C0C0;
|
||||
font-weight: bold;
|
||||
font-size: 12px;
|
||||
|
@ -112,7 +127,6 @@
|
|||
cursor: pointer;
|
||||
padding: 0 8px 0 26px;
|
||||
font-size: 12px;
|
||||
text-transform: uppercase;
|
||||
background-color: #D8DEE2;
|
||||
position: relative;
|
||||
border: 1px solid transparent;
|
||||
|
@ -200,16 +214,10 @@
|
|||
.NB-classifier.NB-classifier-like {
|
||||
background-color: #34912E;
|
||||
border: 1px solid #202020;
|
||||
-webkit-box-shadow: 1px 1px 1px #BDC0D7;
|
||||
-moz-box-shadow: 1px 1px 1px #BDC0D7;
|
||||
box-shadow: 1px 1px 1px #BDC0D7;
|
||||
}
|
||||
.NB-classifier.NB-classifier-dislike {
|
||||
background-color: #A90103;
|
||||
border: 1px solid #000;
|
||||
-webkit-box-shadow: 1px 1px 1px #BDC0D7;
|
||||
-moz-box-shadow: 1px 1px 1px #BDC0D7;
|
||||
box-shadow: 1px 1px 1px #BDC0D7;
|
||||
}
|
||||
|
||||
.NB-classifier.NB-classifier-dislike .NB-classifier-icon-like {
|
||||
|
@ -266,4 +274,4 @@
|
|||
margin: 0 6px 0 -2px;
|
||||
line-height: 26px;
|
||||
color: #A0A0A0;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue